如何用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
















留言
avatar-img
留言分享你的想法!
avatar-img
果農的沙龍
7會員
61內容數
我是果農,這裡有我的人資職涯經驗分享,與我菜鳥般的Python資料分析筆記,還有一些讀書心得,希望對大家有幫助。
果農的沙龍的其他內容
2024/08/30
如何用Python做可調整是否能重複抽獎的程式
Thumbnail
2024/08/30
如何用Python做可調整是否能重複抽獎的程式
Thumbnail
2024/08/23
如何用Python繪製彩色表格
Thumbnail
2024/08/23
如何用Python繪製彩色表格
Thumbnail
2024/08/23
如何調整成Python的日期格式
Thumbnail
2024/08/23
如何調整成Python的日期格式
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
透過分析臺灣好行的公開資料,分享如何用Python繪製折線圖
Thumbnail
透過分析臺灣好行的公開資料,分享如何用Python繪製折線圖
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News