iT邦幫忙

2024 iThome 鐵人賽

DAY 18
0
Python

30天Python資料分析挑戰:從基礎到視覺化系列 第 18

Day 18: 柱狀圖 (Bar Plot) 的應用與實作

  • 分享至 

  • xImage
  •  

Day 18: 柱狀圖 (Bar Plot) 的應用與實作

柱狀圖(Bar Plot)是最常見的資料視覺化圖表之一,常用來比較不同類別之間的數量或頻率。它的直觀性使得我們能夠快速了解不同分類之間的差異。今天,我們將講解柱狀圖的應用情境,並實際使用 Matplotlib 和 Seaborn 繪製柱狀圖。
繼續用昨天plot的檔案
https://ithelp.ithome.com.tw/upload/images/20241002/20140380Pxarzdg0H5.jpg

1. 柱狀圖的應用情境

柱狀圖適合用來顯示以下情境的資料:

  • 分類資料的比較:例如不同產品的銷售量、不同城市的平均溫度等。
  • 時間序列的數據:例如每月的銷售額、每年的生產數量等。
  • 分組數據的可視化:例如不同年齡組別的平均收入、不同地區的失業率等。

2. 使用 Matplotlib 繪製簡單的柱狀圖

首先,我們使用 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()

https://ithelp.ithome.com.tw/upload/images/20241002/201403806qiN3370oF.jpg
這段程式碼會繪製一個簡單的柱狀圖,顯示不同花卉種類的平均花瓣長度。

3. 使用 Seaborn 繪製分組柱狀圖

接下來,我們使用 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()

https://ithelp.ithome.com.tw/upload/images/20241002/20140380dPOHbFQceU.jpg
這段程式碼使用 pd.melt() 重新組織資料,然後使用 Seaborn 繪製分組柱狀圖來展示每種花卉的花萼長度和花瓣長度的平均值。

4. 水平柱狀圖

當類別名稱較長或數量較多時,水平柱狀圖(Horizontal Bar Plot)會更具可讀性。我們可以通過設定 kind='barh' 來繪製水平柱狀圖。

# 繪製水平柱狀圖
average_petal_length.plot(kind='barh')
plt.title('不同花卉種類的平均花瓣長度(水平顯示)')
plt.xlabel('平均花瓣長度 (cm)')
plt.ylabel('花卉種類')
plt.show()

https://ithelp.ithome.com.tw/upload/images/20241002/201403805GFgBXvNgX.jpg
這段程式碼將柱狀圖改為水平顯示,使得類別名稱較長時更易於閱讀。

5. 小結

今天我們學習了如何使用 Matplotlib 和 Seaborn 繪製柱狀圖,包括:

  1. 簡單的柱狀圖,用於顯示不同類別的數量或平均值。
  2. 分組柱狀圖,用於展示多個變數的比較。
  3. 水平柱狀圖,適合類別名稱較長的情境。

柱狀圖在資料分析中應用廣泛,可以幫助我們清晰地展示不同分類之間的差異。接下來,我們將學習散點圖的繪製和應用,來展示變數之間的關係。


上一篇
Day 17: 簡單的資料視覺化 (介紹 Matplotlib 與 Seaborn)
下一篇
Day 19: 散點圖 (Scatter Plot) 的應用與實作
系列文
30天Python資料分析挑戰:從基礎到視覺化30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言