簡體   English   中英

如何在 matplotlib 中指定使用重復標簽?

[英]How do I specify the use of repeated labels in matplotlib?

下面我有一個在 Python 3 和 Matplotlib 中制作的簡單水平條形圖的示例:

from matplotlib import pyplot as plt

labels = ['Dog', 'Cat', 'Dog', 'Mouse']
amounts = [5, 10, 12, 30]

plt.barh(labels, amounts)
plt.show()

這會產生以下圖表:

在此處輸入圖像描述

如您所見,默認行為是第一個“狗” label 和值被忽略。 但是,我想繪制兩個單獨的“狗”點,一個在 5,一個在 12。我將如何 go 來完成這個?

首先 plot 通過唯一的刻度,然后重命名

from matplotlib import pyplot as plt

labels = ['Dog', 'Cat', 'Dog', 'Mouse']
ticks = range(len(labels))
amounts = [5, 10, 12, 30]

fig = plt.barh(ticks, amounts)
plt.yticks(ticks, labels)
plt.show()

在此處輸入圖像描述

如果您想要直方圖,只需在此處提及文本的方向即可。 您可以添加空間以使字符串不同(例如“Dogs”)。 大約測試了它。 在文本前添加 20 個空格,它們不會破壞格式。 如果您需要,這種方法很容易在程序中實現:只需在每個重復元素之前添加足夠的空格。

from matplotlib import pyplot as plt

labels = ['Dog', 'Cat', '                       Dog', 'Mouse']
amounts = [5, 10, 12, 30]

plt.barh(labels, amounts)
plt.show()

輸出

暫無
暫無

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

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