繁体   English   中英

在matplotlib x轴上设置字符串值

[英]Set string values on matplotlib x axis

使用以下代码,我尝试使用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)

我可以使用matplotlib==1.5.3重现python2的错误。


如果您使用的是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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM