Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mithilfe von benutzerdefiniertem Code Gruppenbeschriftungen zu einem Matplotlib-Balkendiagramm hinzufügen?

Wie kann ich mithilfe von benutzerdefiniertem Code Gruppenbeschriftungen zu einem Matplotlib-Balkendiagramm hinzufügen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-17 09:41:03287Durchsuche

How Can I Add Group Labels to a Matplotlib Bar Chart Using Custom Code?

Verwenden von benutzerdefiniertem Code zum Beschriften von Balkendiagrammgruppen

Das Hinzufügen von Gruppenbeschriftungen zu einem Balkendiagramm ist ein Ansatz, der in Betracht gezogen werden kann, insbesondere wenn Eine native Lösung in Matplotlib ist nicht verfügbar. Sie besteht darin, eine benutzerdefinierte Funktion zu erstellen. So geht's:

Benutzerdefinierte Funktion für Gruppenbezeichnungen

def label_group_bar(ax, data):
    # Prepare data
    groups = mk_groups(data)
    xy = groups.pop()
    x, y = zip(*xy)
    ly = len(y)

    # Create bar chart
    xticks = range(1, ly + 1)
    ax.bar(xticks, y, align='center')
    ax.set_xticks(xticks)
    ax.set_xticklabels(x)
    ax.set_xlim(.5, ly + .5)
    ax.yaxis.grid(True)

    # Add lines for group separation
    scale = 1. / ly
    for pos in range(ly + 1):
        add_line(ax, pos * scale, -.1)

    # Add labels below groups
    ypos = -.2
    while groups:
        group = groups.pop()
        pos = 0
        for label, rpos in group:
            lxpos = (pos + .5 * rpos) * scale
            ax.text(lxpos, ypos, label, ha='center', transform=ax.transAxes)
            add_line(ax, pos * scale, ypos)
            pos += rpos
        add_line(ax, pos * scale, ypos)
        ypos -= .1

Unterstützende Funktionen

Um die Datenvorbereitung und Zeilenerstellung zu handhaben:

# Extract data groups and prepare for custom function
def mk_groups(data):
    ...

# Create vertical line in plot
def add_line(ax, xpos, ypos):
    ...

Verwendung

Um dies zu nutzen Lösung:

# Import necessary modules
import matplotlib.pyplot as plt

# Sample data
data = ...

# Create plot and apply custom function
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
label_group_bar(ax, data)
fig.subplots_adjust(bottom=0.3)
fig.savefig('label_group_bar_example.png')

Ergebnis

Mit diesem Ansatz können Sie Gruppenbeschriftungen zu Ihrem Balkendiagramm hinzufügen und so die Datenvisualisierung informativer gestalten.

Hinweis: Alternative und möglicherweise optimiertere Lösungen sind zur weiteren Prüfung willkommen.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von benutzerdefiniertem Code Gruppenbeschriftungen zu einem Matplotlib-Balkendiagramm hinzufügen?. 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