如何在matplotlib上强制设置x记号,或不使用y设置日期时间类型

2024-10-01 22:40:27 发布

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

所以我有一个函数,它将获取一个pandas数据帧并绘制它,同时显示一些错误度量,我还有一个函数,它将使用一个带有日期时间类型索引的pandas数据帧,并获取数据帧中值的日平均值。问题是,当我试图绘制日平均值时,matplotlib看起来很糟糕,因为它以x轴上的一个独立的记号来绘制每天的平均值。我在一个名为Hydrostats的包中有所有这些代码,日均函数的github reposity源代码是here,绘图函数的源代码是here。线性时间序列的曲线图如下所示。 Linear Time Series 日平均图如下所示 Daily Average Plot

如您所见,您看不到任何x轴记号,因为它们都是挤压在一起的。在


Tags: 数据函数代码类型pandashere源代码度量
2条回答

我的情节也遇到了类似的问题

plot shot

Matplotlib自动处理轴上的时间戳,但仅当它们是时间戳格式时。index中的时间戳是字符串格式的,所以我将read_csv改为

pd.read_csv(file_path, index_col=[0], parse_dates=True)

尝试将索引更改为时间戳格式。这解决了我的问题,希望对你也一样。在

nutha plot shot

您可以通过^{}设置用于x轴的记号,通过^{}设置标签。在

例如,您可以为该方法提供一个日期列表,例如当前pd.DataFrame索引(df.index[::20])的每20个值,然后将日期字符串的格式设置如下。在

# Get the current axis
ax = plt.gca()

# Only label every 20th value
ticks_to_use = df.index[::20]

# Set format of labels (note year not excluded as requested)
labels = [ i.strftime("%-H:%M") for i in ticks_to_use ]

# Now set the ticks and labels
ax.set_xticks(ticks_to_use)
ax.set_xticklabels(labels)

注意事项

如果标签仍然重叠,您也可以通过传递旋转参数来旋转它们(例如ax.set_xticklabels(labels, rotation=45))。在

这里有一个关于时间字符串格式的有用参考:http://strftime.org。在

相关问题 更多 >

    热门问题