Maison >développement back-end >Tutoriel Python >Comment puis-je ajouter des étiquettes de groupe à un graphique à barres Matplotlib à l'aide d'un code personnalisé ?
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 :
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
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): ...
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')
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!