我正在尝试显示在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()
答案 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中仅选择 您的“期望”时期并从中创建一个图(缩小) 数据。