我是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轴输出日期。 如何显示所需的输出?
答案 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
获取一个字符串列表,这些字符串的长度必须与您创建的滴答数相等。然后将每个标签与每个标签配对。