在matplotlib x轴上设置字符串值

时间:2018-10-26 08:15:59

标签: python matplotlib

使用下面的代码,我尝试使用matplotlib将x轴值绘制为字符串:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

fig = plt.figure()
plt.figure(figsize=(20,10))
plt.xticks(fontsize=24)
plt.yticks(fontsize=24)

plt.plot( 'x', 'y', data=pd.DataFrame({'x': np.array(['a' , 'b' , 'c']) , 'y': np.array([1,2,3]) }), marker=None, color='blue')


plt.show()

返回此错误:

ValueError: could not convert string to float: 'c'

看来matplotlib正在将轴值推断为字符串。如何更改呢?

我尝试设置类型,但这不能解决:

astype(str)

1 个答案:

答案 0 :(得分:1)

我可以用python2matplotlib==1.5.3中重现错误。


如果您使用的是python3

matplotlib升级到最新版本可以解决此问题:

pip3 install matplotlib --upgrade

如果您使用的是python2

由于最新的matplotlib不支持2.x,因此可以升级到matplotlib==2.1

pip2 install matplotlib==2.1

如果您不想升级

尝试一下:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

plt.figure(figsize=(20,10))
plt.yticks(fontsize=24)
x = np.array(['a' , 'b' , 'c'])
xn = range(len(x))
plt.xticks(xn, x, fontsize=24)

plt.plot(xn, 'y', data=pd.DataFrame({'y': np.array([1,2,3]) }), marker=None, color='blue')
plt.show()