如何使用带有时间戳的matplotlib.pyplot.xlim()?

时间:2020-09-08 10:21:19

标签: python matplotlib plot

我正在尝试显示在x轴上带有时间戳的图。我想显示一个较小的时间范围,但会收到“ SyntaxError:无效令牌”错误。有人知道如何解决这个问题吗?

import sys
import pandas as pd
import feather
import matplotlib.pyplot as plt

df1 = pd.read_feather('HAN_2019_Sept_Var32_oP_4H_L1.feather')
plt.rcParams["figure.figsize"] = (20,10)
fig, ax = plt.subplots()

ax.plot(df1.timestamp ,df1.Differenz_Q_UEH1_Eco, label='oP 4H')
ax.legend()
ax.set(xlabel='timestamp', ylabel='Differenz_Q_UEH1_Eco',title='')

plt.xlim([2019-09-01 00:00:00, 2019-09-01 00:04:00])
ax.grid()

1 个答案:

答案 0 :(得分:0)

让我们从以下通知开始:

plt.xlim([2019-09-01 00:00:00, 2019-09-01 00:04:00])

不是有效的 python 指令。

它会导致以下错误消息:

SyntaxError: leading zeros in decimal integer literals are not permitted

我假设您的 timestamp 列属于 timestamp 类型, 因此,两个 x 限制也都应作为 timestamp 的值传递 类型。

最直观的方法是转换两个日期时间字符串 (甚至没有几秒钟)到时间戳,然后将其传递给 xlim

plt.xlim([pd.to_datetime('2019-09-01 00:00'), pd.to_datetime('2019-09-01 00:04')])

或者也许 xlim 将这些参数接受为字符串? 也尝试这种变体。

另一个选择是从DataFrame中仅选择 您的“期望”时期并从中创建一个图(缩小) 数据。