试图显示x轴日期显示的图形

时间:2018-03-06 20:38:17

标签: matplotlib

我是matplotlib的新手,因为我的x轴,我正在努力绘制线图。

我有3个列表:

x=[01-01-2018,02-01-2018,03-01-2018]
y1=[10,12,9]
y2=[7,9,1] 

我期待在x轴上绘制2线图设置日期:

我期待使用子图进行此操作,以便按我喜欢的方式自定义图形。

为了做到这一点,我尝试的是:

ax1=plt.subplot2grid((1,1),(0,0))
ax1.plot(x,y1,label='test1')
ax1.plot(x,y2,label='test2')

plt.show()  

然而它输出:

ValueError: could not convert string to float: '01-01-2018'

我想输出2线图,在x轴输出日期。 如何显示所需的输出?

1 个答案:

答案 0 :(得分:0)

您需要直接修改xticks。这是一个有效的例子:

y1 = [10, 12, 9]
y2 = [7, 9, 1]
x=['01-01-2018','02-01-2018','03-01-2018']
fig, ax = plt.subplots()
ax.plot(y1,label='test1')
ax.plot(y2, label='test2')
ax.set_xticks([0,1,2])
ax.set_xticklabels(x)
plt.show()

ax.set_xticks设置每个点x axis上显示的特定刻度线 - 0是第一个数据点的刻度线,1表示第二等。

ax.set_xticklabels获取一个字符串列表,这些字符串的长度必须与您创建的滴答数相等。然后将每个标签与每个标签配对。

您还应该查看matplotlib documentation and examples