Maison  >  Article  >  développement back-end  >  Comment puis-je ajouter des étiquettes de groupe à un graphique à barres Matplotlib à l'aide d'un code personnalisé ?

Comment puis-je ajouter des étiquettes de groupe à un graphique à barres Matplotlib à l'aide d'un code personnalisé ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-17 09:41:03287parcourir

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

Utilisation d'un code personnalisé pour étiqueter les groupes de graphiques à barres

Pour ajouter des étiquettes de groupe à un graphique à barres, une approche qui peut être envisagée, surtout si une solution native dans matplotlib n'est pas disponible, consiste à créer une fonction personnalisée. Voici comment :

Fonction personnalisée pour les étiquettes de groupe

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

Fonctions de support

Pour gérer la préparation des données et la création de lignes :

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

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

Utilisation

Pour l'utiliser solution :

# 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')

Résultat

Avec cette approche, vous pouvez ajouter des étiquettes de groupe à votre graphique à barres, rendant la visualisation des données plus informative.

Remarque : Des solutions alternatives et éventuellement plus optimisées sont les bienvenues pour un examen plus approfondi.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn