簡體   English   中英

從字典繪制直方圖時出錯

[英]Error in plotting histogram from dictionary

我有一本包含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'

我不應該使用上面的代碼繪制直方圖嗎? 如果沒有,會有什么建議? 為什么會導致錯誤?

謝謝!

這里查看此示例和文檔,您必須以其他格式提供數據。

import matplotlib.pyplot as plt
import numpy as np

degree_distri = {'F2': 102, 'EGFR': 23, 'C1R': 20}

fig, ax = plt.subplots()
indices = np.arange(len(degree_distri))
width = 0.6

ax.bar(indices, degree_distri.values(), width)

ax.set_xticks(indices)
ax.set_xticklabels(degree_distri.keys())

首先,用indices完成對條形圖的左x坐標的設置,該數組包含一個數字0直到dict的長度。 然后提供值。 dictkeys必須設置為軸標簽,並且要將軸標簽定位在正確的位置,您必須使用條的x位置調用set_xticks

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()

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM