使用下面的代码,我尝试使用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)
答案 0 :(得分:1)
我可以用python2
在matplotlib==1.5.3
中重现错误。
将matplotlib
升级到最新版本可以解决此问题:
pip3 install matplotlib --upgrade
由于最新的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()