绘制大熊猫DataFrames作为在Python/Matplotlib
问题描述:
x轴的单天我得的数据是这样的:绘制大熊猫DataFrames作为在Python/Matplotlib
col1 ;col2
2001-01-01;1
2001-01-01;2
2001-01-02;3
2001-01-03;4
2001-01-03;2
2001-01-04;2
我使用pd.read_csv(...)
成数据帧读它在Python /大熊猫。 现在我想在y轴上绘制col2并在日轴上绘制x轴上的col1。我搜索了很多,但无法详细描述这一点的很多非常有用的页面。我发现matplotlib当前不支持日期存储在(datetime64)中的数据格式。
我试着将它像这样:
fig, ax = plt.subplots()
X = np.asarray(df['col1']).astype(DT.datetime)
xfmt = mdates.DateFormatter('%b %d')
ax.xaxis.set_major_formatter(xfmt)
ax.plot(X, df['col2'])
plt.show()
但这不起作用。 什么是最好的方法? 我只能找到那里的位和那里的位,但是没有什么工作在完整的,更重要的是,与最新版本的pandas/numpy/matplotlib的这个功能相关的最新资源。
我也很想这绝对日期转换为连续两天,指数,即: 开始的第一天2001-01-01是日1,因此数据是这样的:
col1 ;col2 ; col3
2001-01-01;1;1
2001-01-01;2;1
2001-01-02;3;2
2001-01-03;4;3
2001-01-03;2;3
2001-01-04;2;4
.....
2001-02-01;2;32
非常感谢您提前。
答
好吧,据我所见,直接使用matplotlib
就不需要了,但熊猫本身已经提供了绘图功能,可以用作数据框对象的方法,请参阅http://pandas.pydata.org/pandas-docs/stable/visualization.html。这些函数本身使用matplotlib,但更易于使用,因为它们本身可以正确处理数据类型:-)
答
Pandas.read_csv支持parse_dates = True(默认当然是False)这会节省您分别转换日期。
此外,对于这样一个简单的数据框,pandas plot()函数可以很好地工作。 例如:
dates = pd.date_range('20160601',periods=4)
dt = pd.DataFrame(np.random.randn(4,1),index=dates,columns=['col1'])
dt.plot()
plt.show()