Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用matplotlib打印条形图-类型错误_Python_Matplotlib_Plot - Fatal编程技术网

Python 使用matplotlib打印条形图-类型错误

Python 使用matplotlib打印条形图-类型错误,python,matplotlib,plot,Python,Matplotlib,Plot,我试图绘制一个频率分布图(单词的出现及其频率) 这是我的代码: import matplotlib.pyplot as plt y = [1,2,3,4,5] x = ['apple', 'orange', 'pear', 'mango', 'peach'] plt.bar(x,y) plt.show 但是,我遇到了以下错误: TypeError: cannot concatenate 'str' and 'float' objects 如果有更好的方法将标签设置在杆的中间,这将是有趣的

我试图绘制一个频率分布图(单词的出现及其频率)

这是我的代码:

import matplotlib.pyplot as plt

y = [1,2,3,4,5]
x = ['apple', 'orange', 'pear', 'mango', 'peach']

plt.bar(x,y)
plt.show
但是,我遇到了以下错误:

TypeError: cannot concatenate 'str' and 'float' objects
如果有更好的方法将标签设置在杆的中间,这将是有趣的。< /P> 据此,有一个更好的解决方案:

import matplotlib.pyplot as plt
import numpy as np
y = [1,2,3,4,5]
# adding 0.75 did the trick but only if I add a blank position to `xl`
x = np.arange(len(y))
xl = ['apple', 'orange', 'pear', 'mango', 'peach']

fig = plt.figure()
ax = fig.add_subplot(111)
ax.bar(x,y,0.5, align='center')
ax.set_xticks(x)
ax.set_xticklabels(xl)
只需添加两行:

import matplotlib.pyplot as plt
y = [1, 2, 3, 4, 5]
x_name = ['apple', 'orange', 'pear', 'mango', 'peach']
x = np.arange(len(x_name))  # <--
plt.bar(x, y)
plt.xticks(x, x_name)  # <--
plt.show()
导入matplotlib.pyplot作为plt
y=[1,2,3,4,5]
x_name=[‘苹果’、‘橘子’、‘梨’、‘芒果’、‘桃子’]

x=np.arange(len(x_name))#出现以下错误:在ax.bar(x,y)类型中错误:不支持+:“int”和“str”的操作数类型代码在我的计算机上工作。我编辑了它。请再试一次。是的,它可以工作。我忘了我的y列表也是字符串格式的。必须将其转换为整数。谢谢:)@Moritz你不应该在答案中添加问题。如果您有问题,请添加一个问题;)是的,你说得对。我应该删除这个问题吗?
import matplotlib.pyplot as plt
y = [1, 2, 3, 4, 5]
x_name = ['apple', 'orange', 'pear', 'mango', 'peach']
x = np.arange(len(x_name))  # <--
plt.bar(x, y)
plt.xticks(x, x_name)  # <--
plt.show()