柱狀圖(Bar Plot)是最常見的資料視覺化圖表之一,常用來比較不同類別之間的數量或頻率。它的直觀性使得我們能夠快速了解不同分類之間的差異。今天,我們將講解柱狀圖的應用情境,並實際使用 Matplotlib 和 Seaborn 繪製柱狀圖。
繼續用昨天plot的檔案
柱狀圖適合用來顯示以下情境的資料:
首先,我們使用 Matplotlib 繪製一個簡單的柱狀圖,來顯示不同花卉種類的平均花瓣長度。
import matplotlib.pyplot as plt
import pandas as pd
from google.colab import drive
drive.mount('/content/drive/')
# 讀取 Iris 資料集
iris_df = pd.read_csv('/content/drive/MyDrive/iris/iris_dataset.csv')
# 計算每種花卉的平均花瓣長度
average_petal_length = iris_df.groupby('target')['petal length (cm)'].mean()
# 繪製柱狀圖
average_petal_length.plot(kind='bar')
plt.title('different type average length')
plt.xlabel('types')
plt.ylabel('average length')
plt.show()
這段程式碼會繪製一個簡單的柱狀圖,顯示不同花卉種類的平均花瓣長度。
接下來,我們使用 Seaborn 繪製一個分組柱狀圖,以展示每個花卉種類中,花萼長度與花瓣長度的平均值。
import seaborn as sns
import matplotlib.pyplot as plt
# 重新組織資料,將 'target' 作為花卉種類的標籤
iris_melted = pd.melt(iris_df, id_vars=['target'],
value_vars=['sepal length (cm)', 'petal length (cm)'],
var_name='Feature', value_name='Length (cm)')
# 繪製分組柱狀圖
sns.barplot(x='target', y='Length (cm)', hue='Feature', data=iris_melted)
plt.title('Average Sepal and Petal Length by Flower Species')
plt.xlabel('Flower Species')
plt.ylabel('Length (cm)')
plt.show()
這段程式碼使用 pd.melt()
重新組織資料,然後使用 Seaborn 繪製分組柱狀圖來展示每種花卉的花萼長度和花瓣長度的平均值。
當類別名稱較長或數量較多時,水平柱狀圖(Horizontal Bar Plot)會更具可讀性。我們可以通過設定 kind='barh'
來繪製水平柱狀圖。
# 繪製水平柱狀圖
average_petal_length.plot(kind='barh')
plt.title('不同花卉種類的平均花瓣長度(水平顯示)')
plt.xlabel('平均花瓣長度 (cm)')
plt.ylabel('花卉種類')
plt.show()
這段程式碼將柱狀圖改為水平顯示,使得類別名稱較長時更易於閱讀。
今天我們學習了如何使用 Matplotlib 和 Seaborn 繪製柱狀圖,包括:
柱狀圖在資料分析中應用廣泛,可以幫助我們清晰地展示不同分類之間的差異。接下來,我們將學習散點圖的繪製和應用,來展示變數之間的關係。