如何用Python繪製盒鬚圖

更新於 發佈於 閱讀時間約 4 分鐘

首先這是我們的資料:

raw-image


但這是單月的,從政府資料開放平台下載的資料的各月資料如下:

raw-image

所以我們要先把資料統整成一個檔案:

import pandas as pd
import os

#建立一個包含所有檔案名稱的list​
data_list = os.listdir("D:/Desktop/@PROJECT/Python/盒鬚圖/臺中捷運全系統旅運量統計/")

#建立一個空list把所有檔案放進來​
data_concat = []

for i in data_list:
    j = i.split(".")[0] #j為不含副檔名的檔案名稱
    globals()[f"data_{j}"] = pd.read_csv(f"D:/Desktop/@PROJECT/Python/盒鬚圖/臺中捷運全系統旅運量統計/{i}")
    data_concat.append(globals()[f"data_{j}"])

#將list中的所有檔案合併為一個檔案,並忽視原有的index​
data_all = pd.concat(data_concat,ignore_index=True)

最終的資料如下:

raw-image

接著我們就可以開始繪圖了:

import matplotlib

#設定中文字體
matplotlib.rc("font",family="Microsoft YaHei")

from matplotlib import pyplot as plt

#設定圖的大小
plt.figure(figsize=(12,6))

#設定子圖位置
ax = plt.subplot2grid((1,1),(0,0))

#建立放x值與y值的空list
ax_x = []
ax_y = []

#將ax_x放入x軸標籤,ax_y放入各星期的資料
for i in ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]:
    ax_x.append(i)
    globals()[f"data_{i}"] = data_all[data_all["星期"]==i]
    ax_y.append(globals()[f"data_{i}"]["總運量"])

#繪製盒鬚圖
ax.boxplot(ax_y,
           patch_artist=True,
           boxprops=dict(facecolor="lightgray"), #設定盒體顏色
           medianprops=dict(color="steelblue") #設定中位數線的顏色
           )

#設定x軸標籤
ax.set_xticks(range(1,8))
ax.set_xticklabels(ax_x)

#設定y軸大小值與標籤
ax.set_ylim(10000,70000)
ax.set_yticks(list(map(lambda x:x*10000,[1,2,3,4,5,6,7])))
ax.set_yticklabels(list(map(lambda x:str(x)+"萬人",[1,2,3,4,5,6,7])))

#設定文字
for a,b in zip(range(1,8),ax_y):
    ax.text(a, #x軸位置
            b.median()+300, #y軸位置
            str(round(b.median()))+"人", #顯示文字
            horizontalalignment="center", #水平方位相對位置
            color="steelblue", #字體顏色
            fontsize=10 #設定字體大小
            )

#設定標題
ax.set_title("2023/06~2024/04 臺中捷運全系統旅每日運量統計")

plt.tight_layout()
raw-image



avatar-img
4會員
60內容數
我是果農,這裡有我的人資職涯經驗分享,與我菜鳥般的Python資料分析筆記,還有一些讀書心得,希望對大家有幫助。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
果農的沙龍 的其他內容
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
本文將介紹如何用Python繪製群組直條圖。
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
本文介紹如何用Python繪製散布圖與迴歸線
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
本文將介紹如何用Python繪製群組直條圖。
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
本文介紹如何用Python繪製散布圖與迴歸線
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。