用Python/Matplotlib在xaxis上绘制Pandas数据帧

2024-04-18 15:07:37 发布

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

我有这样的数据:

    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

我在Python/Pandas中使用pd.read_csv(...)将其读入数据帧。 现在我想在y轴上画col2,在x轴上画col1。我搜索了很多,但没有太多有用的网页来详细描述这一点。我发现matplotlib当前不支持存储日期的数据格式(datetime64)。在

我试着把它变成这样:

^{pr2}$

但这行不通。 最好的方法是什么? 我只能在那里找到一些东西,但是没有什么东西是完整的,更重要的是,最新版本的pandas/numpy/matplotlib相关的最新资源。在

我也有兴趣将绝对日期转换为连续日指数,即: 开始日期2001-01-01是day1,因此数据如下所示:

    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

事先非常感谢。在


Tags: csv数据方法版本网页pandasreadmatplotlib
2条回答

就我所知,没有必要再直接使用matplotlib,相反,pandas本身已经提供了绘图功能,可以用作dataframe对象的方法,请参见http://pandas.pydata.org/pandas-docs/stable/visualization.html。这些函数本身使用matplotlib,但更易于使用,因为它们本身正确地处理数据类型:-)

在熊猫.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() 

相关问题 更多 >