Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mencipta carta bar berkumpulan dengan jarak yang betul dan anotasi yang tepat menggunakan Matplotlib dan Pandas?

Bagaimana untuk mencipta carta bar berkumpulan dengan jarak yang betul dan anotasi yang tepat menggunakan Matplotlib dan Pandas?

Susan Sarandon
Susan Sarandonasal
2024-11-03 12:23:291039semak imbas

How to create a grouped bar chart with correct spacing and accurate annotations using Matplotlib and Pandas?

Memplot dan Menganotasi Carta Bar Berkumpulan

Analisis Ralat

Kod yang disediakan untuk mencipta carta bar berkumpulan dalam Python menggunakan Matplotlib mengandungi ralat. Khususnya, nilai w tidak betul dan peletakan anotasi menggunakan autolabel tidak sejajar.

Nilai w Dibetulkan:

Nilai w sepatutnya 0.8 / 3 sebaliknya sebanyak 0.8 untuk memastikan jarak yang betul antara bar.

Menggunakan plot Panda untuk Memplot

Pendekatan yang lebih mudah untuk memplot carta bar berkumpulan ialah menggunakan kaedah plot panda DataFrames. Kaedah ini membolehkan plot dan anotasi yang mudah.

Penempatan Anotasi Yang Dipertingkat

Untuk meletakkan anotasi dengan tepat di atas bar, gunakan kod berikut:

for p in ax.patches:
    ax.annotate(f'{p.get_height():0.2f}', (p.get_x() + p.get_width() / 2., p.get_height()), ha = 'center', va = 'center', xytext = (0, 10), textcoords = 'offset points')

Di sini, offset mata ditetapkan kepada (0, 10) untuk menjajarkan anotasi terus di atas pusat bar.

Kod Lengkap

Kod yang diperbetulkan dan dipertingkatkan adalah seperti berikut:

import pandas as pd
import matplotlib.pyplot as plt

df = pandas.DataFrame({
    'Very interested': [1332, 1688, 429, 1340, 1263, 1629],
    'Somewhat interested': [729, 444, 1081, 734, 770, 477],
    'Not interested': [127, 60, 610, 102, 136, 74]
    }, index=['Big Data (Spark / Hadoop)', 'Data Analysis / Statistics', 'Data Journalism', 'Data Visualization', 'Deep Learning', 'Machine Learning'])

colors = ['#5cb85c', '#5bc0de', '#d9534f']
fig, ax = plt.subplots(figsize=(20, 8))

ax.set_ylabel('Percentage', fontsize=14)
ax.set_title(
    "The percentage of the respondents' interest in the different data science Area",
    fontsize=16)
ax.set_xticklabels(ax.get_xticklabels(), rotation=0)

df.plot.bar(ax=ax, color=colors)

for p in ax.patches:
    ax.annotate(f'{p.get_height():0.2f}', (p.get_x() + p.get_width() / 2., p.get_height()), ha='center', va='center', xytext=(0, 10), textcoords='offset points')

plt.show()

Atas ialah kandungan terperinci Bagaimana untuk mencipta carta bar berkumpulan dengan jarak yang betul dan anotasi yang tepat menggunakan Matplotlib dan Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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