为了账号安全,请及时绑定邮箱和手机立即绑定

x轴python格式上的日期标签

x轴python格式上的日期标签

慕婉清6462132 2022-08-25 14:07:46
我的数据看起来像这样01.03.20    1002.03.20    1004.03.20    1505.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 locatorlocator = mdates.MonthLocator()  # every month# Specify the format - %b gives us Jan, Feb...fmt = mdates.DateFormatter('%b-%d')X = plt.gca().xaxisX.set_major_locator(locator)# Specify formatterX.set_major_formatter(fmt)ax.xaxis.set_tick_params(rotation=30)有问题,如 、 ,并且没有显示。我如何更改的格式以显示月份和日期,例如:...x-axisxticksxlabelxlabelMar 01Mar 02Mar 03
查看完整描述

1 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

1)我假设你的轴包含,而不是。然后,在绘图之前,我会将其转换如下。xstringdatetime


x=[datetime.strptime(xi, "%d.%m.%y") for xi in x]

2)如果您选择,则无法将其设置为3月01...因此,将其切换为 .MonthLocatorDayLocator


locator = mdates.DayLocator()

3)这个是可选的,有更清晰的代码。您不需要 .X


ax.xaxis.set_major_locator(locator)

ax.xaxis.set_major_formatter(fmt)

ax.xaxis.set_tick_params(rotation=30)

示例代码在这里。


import numpy as np

import matplotlib.pyplot as plt

import matplotlib.dates as mdates

from datetime import datetime


x=["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()

示例结果在此处。

//img1.sycdn.imooc.com//630711ce00014d0506550477.jpg

查看完整回答
反对 回复 2022-08-25
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信