我有一个带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 - 从字典绘制直方图时出错-LMLPHP

关于python - 从字典绘制直方图时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45090110/

10-12 22:40