如何用Python繪製彩色表格

更新 發佈閱讀 7 分鐘

首先這是我們的資料

raw-image

首先我們可以先最簡單的用plottable將圖表轉成圖檔

import pandas as pd

data = pd.read_csv("第14任總統副總統選舉鳥松區開票統計結果.csv")

import matplotlib

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

from matplotlib import pyplot as plt

from plottable import ColumnDefinition, Table

#設定圖表大小

plt.figure(figsize=(24,12))

#設定子圖位置

ax0 = plt.subplot2grid((1,1),(0,0))

#基礎圖表

tab = Table(data,ax=ax0)
raw-image

接著我們可以設定不同的屬性,客製化想輸出的表格

from matplotlib.colors import LinearSegmentedColormap

from plottable.cmap import normed_cmap

from plottable.plots import progress_donut

from plottable import cell

#設定熱力圖資訊

cmap_DPP = LinearSegmentedColormap.from_list(name="DPP",colors=["#99FF99", "#66FF66", "#00DD00", "#008800"], N=data["蔡英文、陳建仁"].max())

cmap_KMT = LinearSegmentedColormap.from_list(name="KMT",colors=["#CCDDFF", "#5599FF", "#0066FF", "#003C9D"], N=data["朱立倫、王如玄"].max())

cmap_PFP = LinearSegmentedColormap.from_list(name="PFP",colors=["#FFDDAA", "#FFBB66", "#FFAA33", "#FF8800"], N=data["宋楚瑜、徐欣瑩"].max())

#設定圖表大小

plt.figure(figsize=(18,24))

#設定子圖位置

ax0 = plt.subplot2grid((1,1),(0,0))

#基本屬性設定

tab = Table(data, #資料源

ax=ax0, #坐標軸對象

columns = ["村里別","投票所別","朱立倫、王如玄","蔡英文、陳建仁","宋楚瑜、徐欣瑩","有效票數","無效票數","投票數","選舉人數","投票率"], #選擇欄位(默認為使用所有columns)

footer_divider = True, #表格最下方是否顯示分隔線

row_dividers = True, #是否顯示各row分隔線

even_row_color="lightgray", #偶數欄顏色

odd_row_color="white", #奇數欄顏色

textprops = {"ha":"center","color":"k"}, #針對所有文字做屬性調整

column_border_kw={"linewidth": 1, "linestyle": "-","color":"gray"}, #針對設定的border的線作屬性調整

column_definitions = [

ColumnDefinition(name="index",textprops={"ha":"left","color":"gray"},border="right"), #針對各別欄位做調整

ColumnDefinition(name="朱立倫、王如玄",group="參選人",formatter=lambda x:str(x)+"票",border="left",cmap=cmap_KMT), #設定欄位名稱群組、文字格式、邊界、熱力圖

ColumnDefinition(name="蔡英文、陳建仁",group="參選人",formatter=lambda x:str(x)+"票",cmap=cmap_DPP),

ColumnDefinition(name="宋楚瑜、徐欣瑩",group="參選人",formatter=lambda x:str(x)+"票",border="right",cmap=cmap_PFP),

ColumnDefinition(name="選舉人數",border="left"),

ColumnDefinition(name="投票率",textprops={"ha":"center"},plot_fn=progress_donut,plot_kw={"is_pct":False,"formatter":"{:.0%}","radius":0.475,"color":"palevioletred"},border="left") #甜甜圈圖

]+

[

ColumnDefinition(name= i ,textprops={"ha":"center"},group="票數狀況")

for i in ["有效票數","無效票數","投票數"]

]

)

#設定欄位值得顏色

tab.columns["選舉人數"].set_fontcolor("palevioletred")

#設定當選舉人數<1000該行標紅

for i in data["選舉人數"].index:

if data["選舉人數"][i]<1000:

tab.rows[i].set_color("plum")

#儲存圖表為圖檔

plt.savefig("圖表.png")
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/03
如何用Python繪製百分比直條圖
Thumbnail
2024/08/03
如何用Python繪製百分比直條圖
Thumbnail
看更多
你可能也想看
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
Thumbnail
本文將介紹如何利用Python進行資料分析並繪製圓餅圖。
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
透過分析臺灣好行的公開資料,分享如何用Python繪製折線圖
Thumbnail
透過分析臺灣好行的公開資料,分享如何用Python繪製折線圖
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
我們前篇有介紹到如何讓資料視覺化「📈【Google Colab Python系列】以Goodinfo為例,將資料視覺化吧!」,過程中雖然我們的報表呈現皆使用英文字眼,但假若欲繪製中文進行呈現時就會發生以下狀況: import matplotlib.pyplot as plt data = [l
Thumbnail
我們前篇有介紹到如何讓資料視覺化「📈【Google Colab Python系列】以Goodinfo為例,將資料視覺化吧!」,過程中雖然我們的報表呈現皆使用英文字眼,但假若欲繪製中文進行呈現時就會發生以下狀況: import matplotlib.pyplot as plt data = [l
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News