首页 > 解决方案 > Python:从 x 轴上的数据框绘制日期时间并格式化 x 轴

问题描述

我有一些问题要在日期时间上绘制一些数据。假设我有以下数据集:

                       Date           DateUnix  LaserPower  Index
0 2020-02-24 11:22:39+01:00 1582539759.0000000   1.5256180      0
1 2020-02-24 11:22:40+01:00 1582539760.0000000   1.5480100      1
2 2020-02-24 11:22:41+01:00 1582539761.0000000   1.5184820      2
3 2020-02-24 11:22:42+01:00 1582539762.0000000   1.5116720      3
4 2020-02-24 11:22:43+01:00 1582539763.0000000   1.4537440      4

现在我想在日期上绘制 LaserPower。我尝试了通过“日期”列重置索引的方法

overallBin.set_index(['Date'],inplace=True)

而不是绘制数据

ax.plot(overallBin.index, overallBin["LaserPower"])

这会产生以下错误:TypeError: float() argument must be a string or a number, not 'Timestamp'我检查了数据类型,应该没问题...

Date          datetime64[ns, Europe/Berlin]
DateUnix                            float64
LaserPower                          float64
Index                                 int64
dtype: object

你知道如何解决这个问题吗?我认为 matplotlib 可以绘制日期时间?

不过,我尝试了另一种方法来使用以下代码创建一个新列“Date1”:

overallBin['Date1']=overallBin.Date.apply(lambda x: x.strftime('%Y-%m-%d %H:%M:%S'))
ax.plot(overallBin.Date1, overallBin["LaserPower"])

这很好用,python 在 x 轴上绘制了日期,但是......以一种非常糟糕的方式,因为我得到了一个“很棒的粗黑条”。如何更改我没有为每个数据点获得 xtick 的 xtick?

我不知道,哪种方法更适合在 x 轴上绘制日期,因为我绝对是 Python 初学者。但也许你有一些建议。

标签: pythondataframedatedatetimeplot

解决方案


推荐阅读