Hinzufügen von Gruppenbeschriftungen zu Balkendiagrammen
In Matplotlib kann das Hinzufügen von Gruppenbeschriftungen zu Balkendiagrammen deren Lesbarkeit verbessern und eine klare visuelle Darstellung bieten die Datenstruktur. Hier ist eine benutzerdefinierte Lösung, um dies zu erreichen:
# Custom function to group data for bar chart def mk_groups(data): newdata = data.items() thisgroup = [] groups = [] for key, value in newdata: newgroups = mk_groups(value) if newgroups is None: thisgroup.append((key, value)) else: thisgroup.append((key, len(newgroups[-1]))) if groups: groups = [g + n for n, g in zip(newgroups, groups)] else: groups = newgroups return [thisgroup] + groups # Custom function to label group bars def label_group_bar(ax, data): groups = mk_groups(data) xy = groups.pop() x, y = zip(*xy) ly = len(y) 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) scale = 1. / ly for pos in xrange(ly + 1): # change xrange to range for python3 add_line(ax, pos * scale, -.1) 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 # Example usage data = {'Room A': {'Shelf 1': {'Milk': 10, 'Water': 20}, 'Shelf 2': {'Sugar': 5, 'Honey': 6} }, 'Room B': {'Shelf 1': {'Wheat': 4, 'Corn': 7}, 'Shelf 2': {'Chicken': 2, 'Cow': 1} } } fig = plt.figure() ax = fig.add_subplot(1, 1, 1) label_group_bar(ax, data) fig.subplots_adjust(bottom=0.3) # Save the plot to a file fig.savefig('labeled_group_bar_chart.png')
Erklärung:
Dieser Ansatz bietet eine einfache Möglichkeit, Gruppenbeschriftungen zu Balkendiagrammen in Matplotlib hinzuzufügen, was eine verbesserte Datenvisualisierung ermöglicht und Interpretation.
Das obige ist der detaillierte Inhalt vonWie können Sie mithilfe benutzerdefinierter Funktionen Gruppenbeschriftungen zu Balkendiagrammen in Matplotlib hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!