如何用Python繪製直方圖

閱讀時間約 4 分鐘

首先,這是我們的資料:

data = pd.read_csv("opendata.csv")
raw-image

讓我們先用樞紐分析的功能整理我們所需的資料:

pvtData = data.pivot_table(values="嬰兒出生數",index="出生時體重",columns="性別",aggfunc="sum").reset_index()
raw-image

現在我們可以開始繪製圖表,但在繪圖前,我們可以設定圖表的中文字型:

import matplotlib

matplotlib.rc("font",family="Microsoft YaHei")

以下是繪圖的程式碼範例,提供給大家參考:

from matplotlib import pyplot as plt

#設定圖片的大小plt.figure(figsize=(8,8))

#創建第一個子圖ax0,放在一個1欄*2列的圖裡,位置是在第一欄、第一列
ax0 = plt.subplot2grid((2,1),(0,0),colspan=1,rowspan=1)
#創建第二個子圖ax1,位置是在第一欄、第二列
ax1 = plt.subplot2grid((2,1),(1,0),colspan=1,rowspan=1)

#--------------------------------

##繪製第一個子圖#設定x、y值
ax0_x = pvtData["出生時體重"]ax0_y = pvtData["女"]

#繪製長條圖
ax0.bar(x=ax0_x,height=ax0_y)

#設定x軸標籤與刻度為空值
ax0.set_xticklabels([])ax0.set_xticks([])

#設定y軸的上下限
ax0.set_ylim(0,35000)

#設定每個Bar的數值
for x,y,z in zip(ax0_x,ax0_y,ax0_y):   
ax0.text(x,y+400,str(z)+"人",ha="center",fontsize=9)

#設定文字註解
ax0.text(-0.75,32500,"男生",fontsize=12)

#--------------------------------

##繪製第二個子圖#設定x、y值
ax1_x = pvtData["出生時體重"]ax1_y = pvtData["男"]

#繪製長條圖
ax1.bar(x=ax1_x,height=ax1_y)

#因x軸標籤值太長,會重疊覆蓋到彼此,所以先建立有分行的List
ax1_x_list=[]
for i in ax1_x:   
    if "~" in i :
        text = i.split("~")[0] + "~\n" + i.split("~")[1]
    else:
        text = i.split("克")[0] + "克\n" + i.split("克")[1]
    ax1_x_list.append(text)

#設定x軸的標籤為有分行的List
ax1.set_xticklabels(ax1_x_list)

#設定x軸的刻度位置依List的長度依序排列
ax1.set_xticks(range(0,len(ax1_x)))

#設定x軸的名稱
ax1.set_xlabel("出生時體重")

#設定y軸的上下限
ax1.set_ylim(0,35000)

#設定每個Bar的數值
for x,y,z in zip(ax1_x,ax1_y,ax1_y):   
ax1.text(x,y+400,str(z)+"人",ha="center",fontsize=9)

#設定文字註解ax1.text(-0.75,32500,"女生",fontsize=12)
ax1.text(-0.75,32500,"女生",fontsize=12)

#--------------------------------

#設定圖框標題
plt.suptitle("112年不同性別不同體重嬰兒的人數",y=0.97)

plt.tight_layout()
raw-image
















4會員
60內容數
我是果農,這裡有我的人資職涯經驗分享,與我菜鳥般的Python資料分析筆記,還有一些讀書心得,希望對大家有幫助。
留言0
查看全部
發表第一個留言支持創作者!
果農的沙龍 的其他內容
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
如何用Python匯入大批Excel檔案? os.listdir建立資料夾內[檔案名稱.副檔名]之列表 利用迴圈將所有檔案匯入Python 用pandas.concat合併所有DataFrame
如何用Python為某欄做分類,例如:判斷分數是否及格 
如何計算某欄的平均數? 如何計算多個欄位的平均數? 如果想計算不同分組的平均數? 如何用Python計算某欄平均數 利用agg計算平均數 利用groupby建立分組,再用agg計算平均數
如何匯入Excel或CSV檔案? 如何更改欄位名稱? 如何從舊欄位中組合新欄位? 如何擷取舊欄位內容成新欄位? 如何篩選資料?
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
如何用Python匯入大批Excel檔案? os.listdir建立資料夾內[檔案名稱.副檔名]之列表 利用迴圈將所有檔案匯入Python 用pandas.concat合併所有DataFrame
如何用Python為某欄做分類,例如:判斷分數是否及格 
如何計算某欄的平均數? 如何計算多個欄位的平均數? 如果想計算不同分組的平均數? 如何用Python計算某欄平均數 利用agg計算平均數 利用groupby建立分組,再用agg計算平均數
如何匯入Excel或CSV檔案? 如何更改欄位名稱? 如何從舊欄位中組合新欄位? 如何擷取舊欄位內容成新欄位? 如何篩選資料?
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
根據RFM的資料來分成8種類型的客戶,1.重要價值客戶2.重要保持客戶3.重要發展客戶4.一般發展客戶5.重要挽留客戶6.一般價值客戶7.一般保持客戶8.一般挽留客戶
Thumbnail
RFM模型是最基本的分析,可以讓你知道哪些是常客、哪些人是偶爾來一次,或是根本不常來,藉此針對不同的客群去做不同的策略,達到提升業績的方法。接下來就讓我教你如何運用PYTHON快速做出RFM分析
Thumbnail
你也曾想過用直式的編排,在方格子寫下自己的新詩與散文嗎?古板的我,明知道閱讀的是網路文章,還是有想要閱讀直式排版的時候。尤其是讀到很棒的詩與散文,會開始意淫如果是直式排版(像看書本一樣),那會是什麼樣的氣質?閒人如我,在使用方格子編輯器一年多後,試著將不輕不重的小文字,編排成直式閱讀的文章。
Thumbnail
想當初備考的時候很希望可以參考多一點備考心得,所以現在考上了也想上來分享我的備考方式~
Thumbnail
你是否曾經因為不知道如何拒絕而感到困擾?拒絕對方時,是否讓對方產生不悅? 每個人都會遇到需要說「不」的情形,但是如果說「不」的方法不洽當,可能會導致難以收拾的結果,即使是身邊親近的人,也可能會形同陌路;相反的,也有人在說「不」時,可以讓對方理解並欣然接受。 1. 製造心理距離
Thumbnail
資訊設計百百種,光是「捷運各站進出量」的主題就可以列舉許多案例。PTT 的文字整理可以總覽各站的排名和數據,還能比較漲跌趨勢。泡泡地圖則能夠把數據圖形化和空間化,讓讀者更直觀理解各站之間的差異和相對位置。要設計出好看、好懂、看了會喜歡的圖表,隱含許多設計的學問,需要具被資料處理和美術設計的能力。
Thumbnail
幾年前,偶然的在某社群聽見 Robot Framework 這套開源框架,起初抱持著好奇的心情簡單的玩了一下,不過當時完全不理解,用這種 Keyword 方式去撰寫自動化測試的好處在哪? ( 不過就是…我知識不足罷了XD ) 。 接下來,我就可以跑測試拉~! 接著看 log.html:
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
根據RFM的資料來分成8種類型的客戶,1.重要價值客戶2.重要保持客戶3.重要發展客戶4.一般發展客戶5.重要挽留客戶6.一般價值客戶7.一般保持客戶8.一般挽留客戶
Thumbnail
RFM模型是最基本的分析,可以讓你知道哪些是常客、哪些人是偶爾來一次,或是根本不常來,藉此針對不同的客群去做不同的策略,達到提升業績的方法。接下來就讓我教你如何運用PYTHON快速做出RFM分析
Thumbnail
你也曾想過用直式的編排,在方格子寫下自己的新詩與散文嗎?古板的我,明知道閱讀的是網路文章,還是有想要閱讀直式排版的時候。尤其是讀到很棒的詩與散文,會開始意淫如果是直式排版(像看書本一樣),那會是什麼樣的氣質?閒人如我,在使用方格子編輯器一年多後,試著將不輕不重的小文字,編排成直式閱讀的文章。
Thumbnail
想當初備考的時候很希望可以參考多一點備考心得,所以現在考上了也想上來分享我的備考方式~
Thumbnail
你是否曾經因為不知道如何拒絕而感到困擾?拒絕對方時,是否讓對方產生不悅? 每個人都會遇到需要說「不」的情形,但是如果說「不」的方法不洽當,可能會導致難以收拾的結果,即使是身邊親近的人,也可能會形同陌路;相反的,也有人在說「不」時,可以讓對方理解並欣然接受。 1. 製造心理距離
Thumbnail
資訊設計百百種,光是「捷運各站進出量」的主題就可以列舉許多案例。PTT 的文字整理可以總覽各站的排名和數據,還能比較漲跌趨勢。泡泡地圖則能夠把數據圖形化和空間化,讓讀者更直觀理解各站之間的差異和相對位置。要設計出好看、好懂、看了會喜歡的圖表,隱含許多設計的學問,需要具被資料處理和美術設計的能力。
Thumbnail
幾年前,偶然的在某社群聽見 Robot Framework 這套開源框架,起初抱持著好奇的心情簡單的玩了一下,不過當時完全不理解,用這種 Keyword 方式去撰寫自動化測試的好處在哪? ( 不過就是…我知識不足罷了XD ) 。 接下來,我就可以跑測試拉~! 接著看 log.html: