Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menambah Label Kumpulan pada Carta Bar Matplotlib Menggunakan Kod Tersuai?

Bagaimanakah Saya Boleh Menambah Label Kumpulan pada Carta Bar Matplotlib Menggunakan Kod Tersuai?

Linda Hamilton
Lepaskan: 2024-11-17 09:41:03
asal
371 orang telah melayarinya

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

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:

Fungsi Tersuai untuk Label Kumpulan

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
Salin selepas log masuk

Fungsi Sokongan

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):
    ...
Salin selepas log masuk

Penggunaan

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')
Salin selepas log masuk

Hasil

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan