如何用Python繪製百分比直條圖

更新 發佈閱讀 4 分鐘

首先這是我們的資料

raw-image
import pandas as pd
data = pd.read_excel("新竹各觀光景點人次.xlsx").round()

#建立欄位清單
col_list = data.columns.to_list()

#移除不需要的項目
col_list.remove("民國年月")
raw-image
#建立新欄位清單(準備用來存放百分比數值)
new_col_list = []
for i in col_list:
    new_col_list.append(i[0:-2])
raw-image
#計算總人次
data["總人次"] = data[col_list].sum(axis=1)
raw-image
#建立百分比數值欄位
for i,j in zip(col_list,new_col_list):
    data[j] = data[i]/data["總人次"]
raw-image
#建立Y軸欄位
date_list = []
data["民國年月"] = data["民國年月"].astype("str")

for i in data["民國年月"]:
    date_list.append(i[0:3]+"\n"+i[3:5])

data["調整後年月"] = date_list
raw-image
import matplotlib

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

import matplotlib.pyplot as plt

#設定圖表大小
plt.figure(figsize=(24,12))

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

#設定堆疊起始值
start=0

#設定顏色list
color_list = ["lightcoral","lightsalmon","lightgreen","lightcyan","lightsteelblue","lightyellow","lightseagreen","plum"]

#繪圖
for i,j in zip(new_col_list,color_list):

    #設定X、Y列
    ax_x = data["調整後年月"]
    ax_y = data[i]

    #繪製長條圖
    ax.bar(ax_x,ax_y,bottom=start,color=j,label=i,width=0.9)

    #堆疊起始值
    start = start + ax_y

    #顯示百分比>3%的數值
    for a,b,c in zip(ax_x,start,ax_y):
        if c>0.03:
            ax.text(a, b-(c/2), str(round(c*100))+"%", horizontalalignment="center", verticalalignment="center", fontsize=10 )

#設定Y軸為空
ax.set_yticks([])

#刪除上、左、右邊的圖框
ax.spines[["top","left","right"]].set_visible(False)

#設定標題
ax.set_title("新竹各景點遊覽人次",fontsize=18,y=0.96)

#設定圖例
plt.legend(bbox_to_anchor=(0.80,-0.05),ncols=8,fontsize=12)
raw-image


留言
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
對於害怕風險、擔心賠錢的投資新手,本文介紹債券投資的優勢,說明其風險相對可控、能定期領息的特性,並介紹玉山「小額債」如何以低門檻(1,000美元/澳幣起)提供投資者參與海外債市的機會,強調其低波動、固定收益的友善特點,適合有明確時間目標的資金規劃。
Thumbnail
對於害怕風險、擔心賠錢的投資新手,本文介紹債券投資的優勢,說明其風險相對可控、能定期領息的特性,並介紹玉山「小額債」如何以低門檻(1,000美元/澳幣起)提供投資者參與海外債市的機會,強調其低波動、固定收益的友善特點,適合有明確時間目標的資金規劃。
Thumbnail
本文深入探討債券投資的本質、常見迷思、風險控制方法,並詳細介紹玉山證券「小額債」平臺的特色與優勢,包括低門檻、24hr即時報價、精準篩選等,幫助投資人建立理性、有紀律的債券投資策略,打造穩定的現金流,讓金錢成為財務上的助力。
Thumbnail
本文深入探討債券投資的本質、常見迷思、風險控制方法,並詳細介紹玉山證券「小額債」平臺的特色與優勢,包括低門檻、24hr即時報價、精準篩選等,幫助投資人建立理性、有紀律的債券投資策略,打造穩定的現金流,讓金錢成為財務上的助力。
Thumbnail
自由工作者收入不穩定,適合選擇穩健的小額債做資產配置。玉山證券小額債最低一千美金就能開始,支援 24 小時委託下單與即時報價,並提供多條件篩選找到適合的債券。本文分享我的操作體驗與為何小額債能成為自由工作者的安心配置。
Thumbnail
自由工作者收入不穩定,適合選擇穩健的小額債做資產配置。玉山證券小額債最低一千美金就能開始,支援 24 小時委託下單與即時報價,並提供多條件篩選找到適合的債券。本文分享我的操作體驗與為何小額債能成為自由工作者的安心配置。
Thumbnail
為什麼「小額債券」會成為越來越多人關注的選項? 如果你跟我一樣,經歷過股市大漲的甜、也嚐過劇烈修正的苦, 大概就會慢慢明白一件事—— 投資,不只是追求報酬,更是關於「穩定感」。 很多投資新手一開始進市場,很容易把全部資金都丟進股票, 漲的時候很快樂,跌的時候卻發現自己根本睡不好。 這
Thumbnail
為什麼「小額債券」會成為越來越多人關注的選項? 如果你跟我一樣,經歷過股市大漲的甜、也嚐過劇烈修正的苦, 大概就會慢慢明白一件事—— 投資,不只是追求報酬,更是關於「穩定感」。 很多投資新手一開始進市場,很容易把全部資金都丟進股票, 漲的時候很快樂,跌的時候卻發現自己根本睡不好。 這
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News