Menggunakan Kod Tersuai untuk Melabelkan Kumpulan Carta Bar
Untuk menambah label kumpulan pada carta bar, satu pendekatan yang boleh dipertimbangkan, terutamanya jika penyelesaian asli dalam matplotlib tidak tersedia, adalah untuk mencipta fungsi tersuai. Begini caranya:
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
Untuk mengendalikan penyediaan data dan penciptaan talian:
# Extract data groups and prepare for custom function def mk_groups(data): ... # Create vertical line in plot def add_line(ax, xpos, ypos): ...
Untuk menggunakan ini penyelesaian:
# 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')
Dengan pendekatan ini, anda boleh menambah label kumpulan pada carta bar anda, menjadikan visualisasi data lebih bermaklumat.
Nota: Penyelesaian alternatif dan mungkin lebih dioptimumkan dialu-alukan untuk pertimbangan selanjutnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menambah Label Kumpulan pada Carta Bar Matplotlib Menggunakan Kod Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!