PythonPandas时间线图

2024-10-03 23:22:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧

data_df = 
date          value
2016-01-15    1555
2016-01-16    1678
2016-01-17    1789
...  

我想创建一个时间轴图表,以日期为x轴

我导入可视化模块

^{pr2}$

我尝试添加一列来格式化日期 数据[日期]=plt.date2num(广告_数据.日期)在

然后我要画出时间线 绘图日期(数据_数据框日期,数据_显示的数据框)在

这不起作用,因为我没有正确地转换日期。在


Tags: 模块数据绘图dfdatadatevalue可视化
2条回答

如果你的日期是一个日期时间的东西(如果不是,使用pd.to_datetime(),它应该能识别格式),它应该通过调用date_df.plot()来工作。确保它被设置为索引(所以使用date_df.index = date_df['date']

您可以使用:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

#sample data    
start = pd.to_datetime('2016-01-15')
rng = pd.date_range(start, periods=100)

data_df = pd.DataFrame({'date': rng, 'value': range(100)})  
data_df.value = data_df.value * 15 / data_df.date.dt.day
print (data_df)
         date        value
0  2016-01-15     0.000000
1  2016-01-16     0.937500
2  2016-01-17     1.764706
3  2016-01-18     2.500000
4  2016-01-19     3.157895
5  2016-01-20     3.750000
6  2016-01-21     4.285714
7  2016-01-22     4.772727
8  2016-01-23     5.217391
9  2016-01-24     5.625000
10 2016-01-25     6.000000
...
...

如有必要,将列date转换为^{},然后将^{}date转换为:

^{pr2}$

^{}绘制Seriesdata_df['value'],然后设置x轴的格式:

ax = data_df['value'].plot()

ticklabels = data_df.index.strftime('%Y-%m-%d')
ax.xaxis.set_major_formatter(ticker.FixedFormatter(ticklabels))
plt.show()

{a4}

相关问题 更多 >