Memplot dan Menganotasi Carta Bar Berkumpulan
Panduan ini menangani isu yang biasa dihadapi dalam matplotlib apabila mencipta carta bar berkumpulan. Kod yang disediakan bertujuan untuk menggambarkan minat responden dalam pelbagai bidang sains data dengan bar yang mewakili tahap minat mereka (Sangat berminat, Agak berminat, Tidak berminat).
Analisis Masalah
Isu dalam kod yang disediakan terletak pada pengiraan lebar bar. Kod menetapkan w=0.8 tanpa mengambil kira bilangan bar dalam plot. Untuk menjajarkan bar dengan betul, w hendaklah dibahagikan dengan bilangan bar.
Penyelesaian
Untuk menyelesaikan isu ini, laraskan pengiraan lebar bar untuk mempertimbangkan bilangan bar dalam plot. Pendekatan yang lebih cekap ialah menggunakan kaedah panda.DataFrame.plot untuk menjana plot dengan anotasi.
Kod Kemas Kini Menggunakan DataFrame.plot
<code class="python">import pandas as pd import matplotlib.pyplot as plt # Create the DataFrame file = "https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DV0101EN/labs/coursera/Topic_Survey_Assignment.csv" df = pd.read_csv(file, index_col=0) # Calculate percentages df = df.div(2233) # Plot the grouped bar chart ax = df.plot.bar(color=['#5cb85c', '#5bc0de', '#d9534f'], figsize=(20, 8), rot=0, ylabel='Percentage', title="The percentage of the respondents' interest in the different data science Area") # Add annotations 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')</code>
Output:
[Imej carta bar yang diperbetulkan]
Kod yang dikemas kini ini menjana carta bar berkumpulan yang dijajarkan dengan betul dengan anotasi yang menunjukkan peratusan bagi setiap bar.
Atas ialah kandungan terperinci Bagaimana untuk Menjajarkan Bar dengan betul dan Menambah Anotasi dalam Carta Bar Berkumpulan dengan Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!