x轴python格式上的日期标签

我的数据看起来像这样


01.03.20    10

02.03.20    10

04.03.20    15

05.03.20    16

我想绘制与值的对比,我希望的格式类似于...datesyxaxisMar 01Mar 02Mar 03


这是我的代码:


fig, ax = plt.subplots()

ax.scatter(x, y, s=100, c='C0')

ax.plot(x, y, ls='-', c='C0')



# Set the locator

locator = mdates.MonthLocator()  # every month

# Specify the format - %b gives us Jan, Feb...

fmt = mdates.DateFormatter('%b-%d')


X = plt.gca().xaxis

X.set_major_locator(locator)

# Specify formatter

X.set_major_formatter(fmt)


ax.xaxis.set_tick_params(rotation=30)

有问题,如 、 ,并且没有显示。我如何更改的格式以显示月份和日期,例如:...x-axisxticksxlabelxlabelMar 01Mar 02Mar 03


慕婉清6462132
浏览 92回答 1
1回答

qq_笑_17

1)我假设你的轴包含,而不是。然后,在绘图之前,我会将其转换如下。xstringdatetimex=[datetime.strptime(xi, "%d.%m.%y") for xi in x]2)如果您选择,则无法将其设置为3月01...因此,将其切换为 .MonthLocatorDayLocatorlocator = mdates.DayLocator()3)这个是可选的,有更清晰的代码。您不需要 .Xax.xaxis.set_major_locator(locator)ax.xaxis.set_major_formatter(fmt)ax.xaxis.set_tick_params(rotation=30)示例代码在这里。import numpy as npimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesfrom datetime import datetimex=["01.03.20", "02.03.20", "04.03.20", "05.03.20"]x=[datetime.strptime(xi, "%d.%m.%y") for xi in x]y=[10, 10, 15,16]fig, ax = plt.subplots()ax.scatter(x, y, s=100, c='C0')ax.plot(x, y, ls='-', c='C0')locator = mdates.DayLocator() fmt = mdates.DateFormatter('%b-%d')ax.xaxis.set_major_locator(locator)ax.xaxis.set_major_formatter(fmt)ax.xaxis.set_tick_params(rotation=30)ax.set_xlim(x[0],x[3])plt.show()示例结果在此处。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python