如何用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
留言分享你的想法!
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
暖家的防潮、除濕用品分享,若你知道有什麼CP值更高的用品,請推薦給我!同時也分享蝦皮分潤計畫的好處。
Thumbnail
暖家的防潮、除濕用品分享,若你知道有什麼CP值更高的用品,請推薦給我!同時也分享蝦皮分潤計畫的好處。
Thumbnail
寒流來襲,你準備好禦寒小物了嗎?小吉推薦實際使用過、愛用且會回購的防寒小物,強調兼具美感與實用的選品原則。居家必備的地毯、手腳保暖小物(貓咪襪子、防水鋪棉手套、絨毛室內拖鞋)、電力保暖用品(電動暖暖包、可定時電熱毯),泡腳桶、浴室電暖器。特別整理蝦皮雙 12 活動攻略,並邀請你透過連結購買加入分潤。
Thumbnail
寒流來襲,你準備好禦寒小物了嗎?小吉推薦實際使用過、愛用且會回購的防寒小物,強調兼具美感與實用的選品原則。居家必備的地毯、手腳保暖小物(貓咪襪子、防水鋪棉手套、絨毛室內拖鞋)、電力保暖用品(電動暖暖包、可定時電熱毯),泡腳桶、浴室電暖器。特別整理蝦皮雙 12 活動攻略,並邀請你透過連結購買加入分潤。
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