如何更改x轴上的日期格式[重复]

Posted

技术标签:

【中文标题】如何更改x轴上的日期格式[重复]【英文标题】:How to change date format on x-axis [duplicate] 【发布时间】:2021-11-28 04:57:39 【问题描述】:

目前我有这个代码:

def graph_s(self):
    ex_list = list()
    time = list()
    if(len(self.sheet) > 1):
        for index, row in self.sheet.iterrows():
            ts = date(int(row['Year']), int(row['Month']), 1)
            time.append(ts)
            ex_list.append(float(row['grocery']) + float(row['transportation']) + float(row['leisure']) + float(row['utilities']) + float(row['savings']) + float(row['bills']))
        z = sorted(zip(time,ex_list))
        x=[date(2021,i,1) for i in z]
        y=[i[1] for i in z]
        plt.plot(x, y)
        plt.show()
        main()
    else:
        print('Sorry! There is not enough information to create a graph of you spending over time.')
        main()

但图表不是我想要的。我想将 x 轴更改为更好的版本,例如2021-10,我想省略这一天

enter image description here

【问题讨论】:

你是否使用 matplotlib 进行绘图?如果是这样,请将其添加为标签以查找一些 matplotlib 专家。 这能回答你的问题吗? Editing the date formatting of x-axis tick labels in matplotlib 您可以旋转刻度标签:plt.xticks(rotation=90) 【参考方案1】:

您必须为 x 轴定义 DateFormatter。在您的情况下,您只需要几年和几个月。这是符号:'%Y-%m' 和下面你可以看到如何应用格式化程序。

myFmt = mdates.DateFormatter('%Y-%m')
ax1.xaxis.set_major_formatter(myFmt)

示例 本文改编自here:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cbook as cbook
# Fixing random state for reproducibility
np.random.seed(19680801)

# load up some sample financial data
r = (cbook.get_sample_data('goog.npz', np_load=True)['price_data']
     .view(np.recarray))
# create two subplots with the shared x and y axes

fig = plt.figure()
ax1 = fig.add_subplot(1, 1, 1)
ax1.plot(r.date, r.close, lw=2)
myFmt = mdates.DateFormatter('%Y-%m')
plt.xticks(rotation=45)
ax1.xaxis.set_major_formatter(myFmt)

【讨论】:

以上是关于如何更改x轴上的日期格式[重复]的主要内容,如果未能解决你的问题,请参考以下文章

堆叠列不格式化 x 轴上的日期时间戳

Seaborn 条形图中 X 轴上的排序和格式化日期

处理 d3.js 轴上的日期

在 matplotlib 中更改日期时间轴的格式

如何在 r 汽车包中的后续情节的完整性中以适当的格式在 x 轴上绘制日期?

时间轴上刻度子集的日期格式