首页 > 解决方案 > 从绘图中提取所需数据

问题描述

如果我分别在 x 和 y 轴上绘制以下年度人口数据,我如何从图中获取 10 年的每日数据,就像我希望能够从使用创建的曲线中获取每天的人口这个数据

那可能吗?

    2020    713,000 
    2019    703,000 
    2018    694,000 
    2017    684,000 
    2016    674,000 
    2015    664,000 
    2014    655,000 
    2013    645,000 
    2012    636,000 
    2011    627,000

标签: pythonplotcurve-fitting

解决方案


import numpy as np
from datetime import datetime,timedelta
import pandas as pd

# make your data a frame
df = pd.DataFrame([[2020,    713000], 
[    2019,    703000], 
[    2018,    694000], 
[    2017,    684000], 
[    2016,    674000], 
[    2015,    664000], 
[    2014,    655000], 
[    2013,    645000], 
[    2012,    636000], 
[    2011,    627000]], columns=['DateTime','pop'])

# make DateTime column an datetime object
df['DateTime'] = df['DateTime'].apply(lambda x: datetime(x,1,1))

# create a time range for each day in your period
time_range = np.arange(datetime(2011, 1,1), datetime(2021,1,1), timedelta(days=1))

# make time_range a frame 
af = pd.DataFrame(time_range, columns=['DateTime'])

# merge both together (left join on column DateTime) and interpolate the gaps
df = af.merge(df, on='DateTime', how='left').interpolate()

print(df)

推荐阅读