我有一个带7191
键的字典,这些值表示每个键的频率。
degree_distri = {'F2': 102, 'EGFR': 23, 'C1R': 20,...}
为了绘制直方图,我做了:
plt.bar(list(degree_distri.keys()), degree_distri.values(), color='r')
但我收到一条错误信息:
unsupported operand type(s) for -: 'str' and 'float'
我不应该使用上面的代码来绘制直方图吗?如果没有,有什么建议?为什么会导致错误?
谢谢您!
最佳答案
matplotlib.pyplot.bar
将两个标量序列作为必需的参数:条左侧的x坐标和条的高度。因此,您应该使用range
获取所需的参数,然后使用plt.xticks
设置所需的刻度:
import matplotlib.pyplot as plt
degree_distri = {'F2': 102, 'EGFR': 23, 'C1R': 20}
keys, values = degree_distri.keys(), degree_distri.values()
plt.bar(range(len(values)), values, color='r')
plt.xticks(range(len(values)), keys)
plt.show()
关于python - 从字典绘制直方图时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45090110/