我想根据非数字数据绘制数值数据,如下所示:
import matplotlib.pyplot as pl
x=['a','b','c','d']
y=[1,2,3,4]
pl.plot(x,y)
但是,使用matplotlib绘图包时,会收到数据不浮动的警告(ValueError:float()的无效文字:a)。
在他们的'How-to'中,他们建议先将数值数据放在x轴上,然后对其进行格式化。 有没有办法直接这样做(如上所述)?
答案 0 :(得分: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()
答案 1 :(得分: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()
另一方面,日期在这个意义上是数字的(即它们具有固有的顺序和间距)。
Matplotlib可以很好地绘制时态数据,并且与上面的示例完全不同。 matplotlib an example中有examples section,但它侧重于炫耀几个不同的东西。一般情况下,您只需使用plot_date
或只绘制数据并调用ax.xaxis_date()
(或yaxis_date
)告诉matplotlib使用各种日期定位器和代码。