首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制在matplotlib上设置x标记,或将日期时间类型设置为无年份

如何强制在matplotlib上设置x标记,或将日期时间类型设置为无年份
EN

Stack Overflow用户
提问于 2018-01-20 04:07:17
回答 2查看 7.7K关注 0票数 3

因此,我有一个函数,它将获取熊猫的数据并绘制它,并显示一些错误度量,我还有一个函数,它将获取带有日期时间类型索引的熊猫数据,并取数据中的每日平均值。问题是,当我试图绘制每日平均值时,matplotlib看起来非常糟糕,因为它每天都是x轴上的一个独立的滴答。我把所有这些代码都放在一个名为氢统计数据的包中,每日平均函数的github存储库源代码是这里,绘图函数的源代码是这里。线性时间序列的图如下。

每日平均地块如下

正如你所看到的,你看不到任何x轴的滴答声,因为它们都是被挤压在一起的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-20 09:50:35

您可以通过ax.set_xticks()设置x轴使用的刻度,通过ax.set_xticklabels()设置标签。

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

代码语言:javascript
复制
# 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)

Notes

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

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

票数 7
EN

Stack Overflow用户

发布于 2019-10-25 14:52:56

我的情节也面临着类似的问题。

Matplotlib在轴上自动处理时间戳,但只有在时间戳格式时才自动处理。index中的时间戳是字符串格式的,因此我将read_csv更改为

代码语言:javascript
复制
pd.read_csv(file_path, index_col=[0], parse_dates=True)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48352482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档