from datetime import datetime
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
dates = ['2016010106','2016010107','2016010108','2016010109','2016010110','2016010111','2016010112','2016010113',
'2016010114','2016010115','2016010116','2016010117','2016010118']
xs = [datetime.strptime(d, '%Y%m%d%H') for d in dates]
ys = ['36','29','26','22','29','38','48','55','56','60','55','48','51']
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y%m%d%H'))
ax.xaxis.set_major_locator(mdates.HourLocator())
plt.plot(xs, ys)
plt.gcf().autofmt_xdate()
plt.show()
运行结果如下:
**如果天为间隔,修改如下:
xs = [datetime.strptime(d, ‘%Y%m%d%H’).date() for d in dates]
ax.xaxis.set_major_formatter(mdates.DateFormatter(‘%Y%m%d’))
ax.xaxis.set_major_locator(mdates.DayLocator())**
有一个网友碰到这样一个问题,如果直接使用%H来设置
坐标
轴显示,会发现格式化的数据显示为00到23,然后再到00,它不会显示24出来。为了解决这个问题,可以采用自定义
坐标
字符串的方式来显示,不过
时间
变化就是在00到24
小时
之间了,只能使用整数来表示。
具体内容可参考下文:
深入浅出
matplotlib
(35):设置
坐标
轴个性化显示标签
https://mysoft.blog.csdn.net/article/details/111479756
在这里演示的例子如下:
#深入浅出matplot.
2. 源码
将data.txt中的数据读入,用
matplotlib
中的pyplot
画
出,x轴为
时间
。
数据文本 data.txt,除了第一行表头外,每一列都用制表符Tab(\t)隔开。
原创 粉丝 喜欢 评论 等级 访问 积分 排名
2018/06/01 69 134 266 64 5 309132 3345 12956
2018/06/05 72 137 267 65 5 312383 3390 1
from
matplotlib
.dates import DateFormatter, WeekdayLocator, DayLocator, MONDAY,YEARLY获取每月数据
monthdays = MonthLocator()
获取每个周一数据
import
matplotlib
as mpl
import datetime as dtfig = plt.figure()
ax2 = fig.add_subplot(212)
date2_1 = dt.datetime(2008,9,23)
date2_2 = dt.datetime(200
ValueError: could not convert string to float: '2020-02-05'
源数据是一个Excel 文件(KMI.xls), 大概如此:
matplotlib
横
坐标
日期太多重叠在一起,减少横
坐标
数量
使用
matplotlib
画
图时,横
坐标
是日期,然后横
坐标
太多了,都重叠在一起。下图所示,横
坐标
都重叠在一起。网上查了很多资料,大部分都说要旋转横
坐标
,或者是手动设定横
坐标
,都不满足我的需求,我就想找个方法让图形自动生成横
坐标
,也不用太多。
# 下图代码
plt.plot(df['date'], df['y], color='orange')
plt.scatter(df['date'], df['y1'], color='red')
plot.s