在x轴上绘制非数字数据(例如,日期)

Max*_* Li 12 python matplotlib

我想根据非数值数据绘制数值数据,如下所示:

import matplotlib.pyplot as pl
x=['a','b','c','d']
y=[1,2,3,4]
pl.plot(x,y)
Run Code Online (Sandbox Code Playgroud)

但是,使用matplotlib绘图包时,您会收到数据不浮动的警告(ValueError:float()的无效文字:a).

在他们的"操作方法"中,他们建议首先将数值数据放在x轴上,然后对其进行格式化.有没有办法直接这样做(如上所述)?

Ste*_*rry 14

使用xticks功能.

import matplotlib.pyplot as pl
xticks=['a','b','c','d']
x=[1,2,3,4]
y=[1,2,3,4]
pl.plot(x,y)
pl.xticks(x,xticks)
pl.show()
Run Code Online (Sandbox Code Playgroud)


Joe*_*ton 12

import matplotlib.pyplot as plt
x = ['a','b','c','d']
y = [1,2,3,4]
plt.plot(y)
plt.xticks(range(len(x)), x)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另一方面,日期在这个意义上是数字的(即它们具有固有的顺序和间距).

Matplotlib可以很好地处理时态数据,并且与上面的例子非常不同.在matplotlib 示例部分中一个示例,但它侧重于展示几个不同的东西.一般情况下,您只需使用或只绘制数据并调用(或)告诉matplotlib使用各种日期定位器和代码.plot_dateax.xaxis_date()yaxis_date