我试图画一个条形图,但我经常会遇到这个错误

2024-03-28 19:34:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码:

Dict = {'b':1 , 'n':1, '-':20, '\xa0':5}
x = list(Dict.keys())
y = list(Dict.values())
fig = plt.figure(figsiz = (10,5))

plt.bar(x,y,width = 0.5, color = 'maroon')

错误:

unsupported operand type(s) for -: 'float' and 'str'

Tags: 代码错误figbarpltkeyswidthdict
1条回答
网友
1楼 · 发布于 2024-03-28 19:34:05

Matplotlib告诉您它不知道如何在X轴上绘制Dict.keys()。您需要使用X轴的数值绘制条形图,然后可以将Dict.keys()指定给条形图作为记号标签。您需要调整绘图比例和/或数据字典,以使数据正确显示。下面的代码显示了如何获取要打印的数据以及如何分配刻度标签(但不进行任何其他调整)

import matplotlib.pyplot as plt

# Dict = {u'b':1 , u'n':1, u'-':20, u'\xa0':5}

x = [1, 2, 3, 4]
y = [1, 1, 20, 5]
labels = [u'b', u'n', u'-', u'\xa0']  # Note that '\xa0' is a non-breaking space

fig = plt.figure(figsize = (10,5))
plt.bar(x,y,width = 0.5, color = 'maroon')
plt.xticks(x, labels)

plt.show()

注意:根据您的Python版本,您不能保证字典键和值的传递顺序。我已经更新了这个答案,对数据进行了硬编码,以使原始问题的答案更加明显

相关问题 更多 >