编辑 x 轴刻度标签的日期格式

我期待编辑的格式的日期在 x 轴。下面的图片显示了它们默认情况下如何出现在我的条形图上。我想删除重复的’12月’和’2012年’,只有沿着 x 轴的实际日期编号。

对于我该怎么做有什么建议吗?

enter image description here

175700 次浏览

简而言之:

import matplotlib.dates as mdates
myFmt = mdates.DateFormatter('%d')
ax.xaxis.set_major_formatter(myFmt)

在 matplotlib 网站上有很多例子,我最常用的是 给你

尽管 Paul H 给出的答案显示了基本部分,但这并不是一个完整的例子。另一方面,Matplotlib 例子似乎相当复杂,并没有显示如何使用天。

因此,对于每一个需要帮助的人来说,这里有一个完整的例子:

from datetime import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter


myDates = [datetime(2012,1,i+3) for i in range(10)]
myValues = [5,6,4,3,7,8,1,2,5,4]
fig, ax = plt.subplots()
ax.plot(myDates,myValues)


myFmt = DateFormatter("%d")
ax.xaxis.set_major_formatter(myFmt)


## Rotate date labels automatically
fig.autofmt_xdate()
plt.show()

从这个 例子中显示的包 Matplotlib.date中,日期格式可以应用到轴标签和刻度表上。

下面我给出了一个为多重图标记轴刻度的示例

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd


df = pd.read_csv('US_temp.csv')
plt.plot(df['Date'],df_f['MINT'],label='Min Temp.')
plt.plot(df['Date'],df_f['MAXT'],label='Max Temp.')
plt.legend()
####### Use the below functions #######
dtFmt = mdates.DateFormatter('%b') # define the formatting
plt.gca().xaxis.set_major_formatter(dtFmt) # apply the format to the desired axis
plt.show()

就这么简单

这对我来说再合适不过了

import matplotlib.pyplot as plt
from matplotlib.ticker import (MultipleLocator, FormatStrFormatter,
AutoMinorLocator)
import matplotlib.dates as mdates


dtFmt = mdates.DateFormatter('%Y-%b') # define the formatting
plt.gca().xaxis.set_major_formatter(dtFmt)
# show every 12th tick on x axes
plt.gca().xaxis.set_major_locator(mdates.MonthLocator(interval=1))
plt.xticks(rotation=90, fontweight='light',  fontsize='x-small',)

formating example