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

Linda Hamilton
Libérer: 2024-11-17 09:41:03
original
286 Les gens l'ont consulté

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
Copier après la connexion

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):
    ...
Copier après la connexion

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')
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal