试图显示在x轴日期显示的图表[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我是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轴输出日期。如何显示所需的输出?

matplotlib
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.