iT邦幫忙

2024 iThome 鐵人賽

DAY 21
0
Python

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

Day 21: 面積圖 (Area Plot) 的應用與實作

  • 分享至 

  • xImage
  •  

Day 21: 面積圖 (Area Plot) 的應用與實作

面積圖(Area Plot)是一種用來展示資料隨時間或其他變數變化的累積趨勢的圖表。它類似於折線圖,但將曲線下方的區域填滿,從而更直觀地展示數據的變化趨勢。今天,我們將介紹面積圖的應用場景,並使用 Matplotlib 和 Pandas 繪製面積圖來展示累積變化的趨勢。
用昨天PLOT的檔案繼續使用

https://ithelp.ithome.com.tw/upload/images/20241005/201403808vgOa24BoD.jpg

再來點+text的按鈕
打# area plot

1. 面積圖的應用場景

面積圖適合用來展示以下情境的資料:

  • 時間序列的累積變化:例如每月銷售額的累積增長、每年人口的累積變化等。
  • 多組資料的累積對比:例如不同產品類別的銷售趨勢、不同地區的氣溫變化等。
  • 累積分佈的展示:展示不同組別數據的累積分佈,觀察總體變化趨勢。

2. 使用 Matplotlib 繪製簡單的面積圖

首先,我們使用 Matplotlib 繪製一個簡單的面積圖,來展示不同花卉種類的累積花萼長度變化。

# 計算累積花萼長度
iris_df['Cumulative Sepal Length'] = iris_df.groupby('target')['sepal length (cm)'].cumsum()

# 繪製簡單面積圖
plt.fill_between(iris_df.index, iris_df['Cumulative Sepal Length'], color='skyblue', alpha=0.4)
plt.plot(iris_df.index, iris_df['Cumulative Sepal Length'], color='Slateblue', alpha=0.6, linewidth=2)
plt.title('Cumulative Sepal Length Trend by Flower Species')
plt.xlabel('Sample Index')
plt.ylabel('Cumulative Sepal Length (cm)')
plt.show()

https://ithelp.ithome.com.tw/upload/images/20241005/20140380H2T1QknnOY.jpg
這段程式碼計算了花卉種類的累積花萼長度,並使用 fill_between() 函數繪製了面積圖。

3. 使用 Pandas 繪製堆疊面積圖

我們可以使用 Pandas 內建的繪圖功能來繪製堆疊面積圖,展示不同花卉種類的累積花瓣長度變化。

# 計算每種花卉的平均花瓣長度
grouped_petal_length = iris_df.groupby('target')['petal length (cm)'].mean()

# 繪製堆疊面積圖
grouped_petal_length.plot(kind='area', stacked=True, alpha=0.6)
plt.title('Cumulative Petal Length Trend by Flower Species')
plt.xlabel('Flower Species')
plt.ylabel('Average Petal Length (cm)')
plt.show()

https://ithelp.ithome.com.tw/upload/images/20241005/20140380PsGSWhADYf.jpg
這段程式碼使用 unstack() 來轉換資料格式,並繪製了一個堆疊面積圖,展示不同花卉種類的累積花瓣長度變化趨勢。

4. 調整面積圖的樣式與外觀

我們可以通過調整顏色、透明度和線條樣式來改進面積圖的外觀,使其更加美觀和易於理解。

# 調整樣式與外觀的面積圖
plt.fill_between(iris_df.index, iris_df['Cumulative Sepal Length'], color='lightgreen', alpha=0.5, label='Cumulative Sepal Length')
plt.plot(iris_df.index, iris_df['Cumulative Sepal Length'], color='green', alpha=0.8, linewidth=2)
plt.title('Cumulative Sepal Length Trend (Improved)')
plt.xlabel('Sample Index')
plt.ylabel('Cumulative Sepal Length (cm)')
plt.legend()
plt.grid(True)
plt.show()

https://ithelp.ithome.com.tw/upload/images/20241005/20140380sbKvTDEO4F.jpg
這段程式碼調整了面積圖的顏色、透明度,並添加了圖例和網格線,使圖表更加美觀和清晰。

5. 分組面積圖

如果我們希望展示不同花卉種類的累積花瓣長度趨勢,可以使用多組資料的分組面積圖。

# 繪製分組面積圖
for label, df in iris_df.groupby('target'):
    plt.fill_between(df.index, df['Cumulative Sepal Length'], alpha=0.4, label=f'Flower Species {label}')
    plt.plot(df.index, df['Cumulative Sepal Length'], alpha=0.6)

plt.title('Cumulative Sepal Length by Flower Species')
plt.xlabel('Sample Index')
plt.ylabel('Cumulative Sepal Length (cm)')
plt.legend()
plt.show()

https://ithelp.ithome.com.tw/upload/images/20241005/20140380doaNHesrqW.jpg
這段程式碼會為每個花卉種類繪製一個分組面積圖,幫助我們比較不同花卉種類的累積趨勢。

6. 小結

今天我們學習了如何使用 Matplotlib 和 Pandas 繪製面積圖,包括:

  1. 簡單的面積圖,用於展示累積變化趨勢。
  2. 堆疊面積圖,展示多組資料的累積對比。
  3. 調整面積圖的樣式與外觀,使其更加美觀和易於理解。
  4. 分組面積圖,用於比較不同類別資料的累積趨勢。

面積圖能夠幫助我們更好地理解資料的累積變化趨勢。接下來,我們將學習如何對資料進行排序與排名,以便進行進一步的分析與比較。


上一篇
Day 20: 直方圖 (Histogram) 的應用與實作
下一篇
Day 22: 資料排序與排名
系列文
30天Python資料分析挑戰:從基礎到視覺化30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言