Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kommentiere ich ein gruppiertes Balkendiagramm in Matplotlib mit mehreren Werten für jeden Balken?

Wie kommentiere ich ein gruppiertes Balkendiagramm in Matplotlib mit mehreren Werten für jeden Balken?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-27 10:24:30638Durchsuche

How to annotate a grouped bar chart in Matplotlib with multiple values for each bar?

Mehrere Anmerkungen für gruppiertes Balkendiagramm

Problem:
Beim Versuch, ein gruppiertes Balkendiagramm mit Matplotlib zu erstellen, erscheint die Ausgabe falsch .

Codebeispiel:

<code class="python">import matplotlib.pyplot as plt

# sample data
labels = ['Label 1', 'Label 2', 'Label 3']
data1 = [5, 10, 15]
data2 = [15, 10, 5]

# create the bar chart
plt.bar(labels, data1, 0.4, label='Data Set 1')
plt.bar(labels, data2, 0.4, label='Data Set 2', bottom=data1)

# attempt to annotate each bar
for i in range(3):
    plt.annotate(data1[i], (labels[i], data1[i]), xytext=(-5, 5), textcoords='offset points')
    plt.annotate(data2[i], (labels[i], data2[i]+data1[i]), xytext=(-5, 5), textcoords='offset points')

plt.legend()
plt.show()</code>

Erwartete Ausgabe:

Jeder Balken sollte mit seinem jeweiligen Wert versehen sein.

Lösung:

Methode 1: bar_label verwenden

<code class="python">import matplotlib.pyplot as plt

plt.bar(labels, data1, 0.4, label='Data Set 1')
plt.bar(labels, data2, 0.4, label='Data Set 2', bottom=data1)

for i in range(3):
    plt.bar_label(plt.gca().containers[i], labels=(data1[i], data2[i]), fmt='%.1f', padding=10)

plt.legend()
plt.show()</code>

Methode 2: annotate verwenden

<code class="python">import matplotlib.pyplot as plt

plt.bar(labels, data1, 0.4, label='Data Set 1')
plt.bar(labels, data2, 0.4, label='Data Set 2', bottom=data1)

for i in range(3):
    height1 = data1[i]
    height2 = data2[i]

    # annotate for data set 1
    plt.annotate(str(height1), (labels[i], height1), xytext=(0, 5), textcoords='offset points')

    # annotate for data set 2
    plt.annotate(str(height2), (labels[i], height1 + height2), xytext=(0, 5), textcoords='offset points')

plt.legend()
plt.show()
````
</code>

Das obige ist der detaillierte Inhalt vonWie kommentiere ich ein gruppiertes Balkendiagramm in Matplotlib mit mehreren Werten für jeden Balken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn