python 绘图横坐标时间
时间: 2023-05-04 09:04:21 浏览: 172
在Python中使用Matplotlib包绘制图形时,可以通过修改坐标轴的刻度来调整横坐标(x轴)的时间显示。具体来说,可以先将时间数据类型转换为matplotlib所接受的datetime.datetime对象,然后设置x轴的主刻度和次刻度,以及其显示格式。示例代码如下:
```
import matplotlib.pyplot as plt
import datetime
# 定义时间序列数据
dates = ['20210101', '20210102', '20210103', '20210104', '20210105']
values = [1, 3, 5, 2, 4]
# 转换时间字符串为datetime.datetime对象
dates_datetime = [datetime.datetime.strptime(d, '%Y%m%d') for d in dates]
# 创建图形
fig, ax = plt.subplots()
# 设置主刻度和次刻度
ax.xaxis.set_major_locator(plt.MaxNLocator(5)) # 设置主刻度为5个
ax.xaxis.set_minor_locator(plt.AutoMinorLocator()) # 设置次刻度自动选择
# 设置刻度标签显示格式
ax.xaxis.set_major_formatter(plt.DateFormatter('%Y-%m-%d'))
# 绘制折线图
ax.plot(dates_datetime, values)
# 显示图形
plt.show()
```
上述代码中,首先定义了一个字符串数组dates和一个数字数组values,表示时间序列数据和对应的数值。然后,通过循环将每个字符串日期转换为datetime.datetime对象,并存储在dates_datetime数组中。接下来,创建一个图形,并设置横坐标的主刻度为5个,次刻度自动选择,并将刻度标签格式化为“年-月-日”的形式。最后,使用ax.plot()函数绘制折线图,并通过plt.show()函数显示图形。运行上述代码,将得到一个横坐标为时间的折线图。
阅读全文