我的代码:
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'
答案 0 :(得分:0)
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 版本,您无法保证字典键和值的传递顺序。我已更新此答案以对数据进行硬编码,以使您对原始问题的回答更加明显。