【Python】你的表格太丑了!能美化下吗?
生活随笔
收集整理的這篇文章主要介紹了
【Python】你的表格太丑了!能美化下吗?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
公眾號:尤而小屋
作者:Peter
編輯:Peter
大家好,我是Peter~
有時候看到一份表格,沒有任何的顏色修飾,總覺得缺點美觀效果。在Excel中我們可以直接對字體的顏色、大小等進行設置,還可以進行單元格的顏色填充,在plotly中美化表格輸出主要是有兩種方式:
使用go.Table方法
使用figure_factory的creat_table方法
Plotly連載文章
導入庫
import?pandas?as?pd import?numpy?as?npimport?plotly_express?as?px import?plotly.graph_objects?as?go??#?方法1:go.Table import?plotly.figure_factory?as?ff?#?方法2:圖形工廠go.Table實現
該方法類似其他的圖表繪制,直接使用go.Table方法之后往其中加入數據
基礎表格
添加表頭和單元格中的數據
import?plotly.graph_objects?as?gofig?=?go.Figure(data=[go.Table(header=dict(values=['語文',?'數學']),??#?表頭:列表形式cells=dict(values=[[100,?90,?140,?123],?#?單元格添加:第一列元素[105,?135,?75,?95]]))?#?第二列元素]) fig.show()個性化表格設置
import?plotly.graph_objects?as?gofig?=?go.Figure(data=[go.Table(header=dict(values=['語文',?'數學'],???#?表頭:字典形式line_color="darkslategray",??#?表頭線條顏色fill_color="lightskyblue",??#?表頭填充色align="center"??#?文本顯示位置?'left',?'center',?'right'),?cells=dict(values=[[100,?90,?140,?123],?#?單元格添加:第一列元素[105,?135,?75,?95]],?#?第二列元素line_color="darkslategray",??#?單元格線條顏色fill_color="lightcyan",??#?單元格填充色align="center"??#?文本顯示位置))])fig.update_layout(width=600,height=400)fig.show()DataFrame轉成表格
將DataFrame數據快速轉成漂亮的表格
#?繪圖fig?=?go.Figure(data=[go.Table(header=dict(values=list(data.columns),??#?表頭取值是data列屬性fill_color='paleturquoise',??#?填充色和文本位置align='left'),cells=dict(values=[data.性別,data.年齡,data.成績],??#?單元格的取值就是每個列屬性的Series取值fill_color='lavender',align='left'))] )fig.show()改變row和column的大小
有時候單元格的數據太長,我們需要進行單元格大小的調整
import?plotly.graph_objects?as?govalues?=?[["李白?唐代","杜甫?唐代","蘇軾?宋代","王安石?宋代"],?#?第一列數據["床前明月,疑是地上霜;舉頭望明月,低頭思故鄉","國破山河在,城春草木深。感時花濺淚,恨別鳥驚心。<br>烽火連三月,家書抵萬金。白頭騷更短,渾欲不勝簪。","十年生死兩茫茫,不思量,自難忘。千里孤墳,無處話凄涼。<br>縱使相逢應不識,塵滿面,鬢如霜。<br>夜來幽夢忽還鄉,小軒窗,正梳妝。相顧無言,惟有淚千行。<br>料得年年腸斷處,明月夜,短松岡。","念往昔、繁華競逐。嘆門外樓頭,悲恨相續。<br>千古憑高,對此謾嗟榮辱。<br>六朝舊事隨流水,但寒煙、芳草凝綠。<br>至今商女,時時猶唱后庭遺曲。"]]fig?=?go.Figure(data=[go.Table(columnorder?=?[1,2],??#?列屬性的順序columnwidth?=?[800,4000],??#?列屬性中元素所占單元格整體大小#?表頭header?=?dict(values=[["唐宋作家"],["代表作品"]],??#?兩個表頭line_color='darkslategray',??#?線條和填充色fill_color='royalblue',align=['left','center'],?#?位置font=dict(color='white',?size=12),?#?表頭文本的顏色和字體大小font_size=12,height=40??#?高度),#?單元格設置cells?=?dict(values=values,??#?數據line_color='darkslategray',??#?線條顏色fill=dict(color=['paleturquoise',?'white']),align=['left',?'center'],??#?兩個列屬性文本顯示位置font_size=12,??#?字體大小height=50)) ])#fig.update_layout(width=600,height=400)fig.show()設置表格漸變色
import?plotly.graph_objects?as?goimport?pandas?as?pdcolors?=?['rgb(239,?243,?255)',??#?rgb值越接近255,越接近白色'rgb(189,?215,?231)',?'rgb(107,?174,?214)','rgb(59,?130,?189)',?'rgb(9,?81,?156)']data?=?{'Year'?:?[2015,?2016,?2017,?2018,?2019],?'Color'?:?colors}df?=?pd.DataFrame(data)print(df)fig?=?go.Figure(data=[go.Table(#?表頭header=dict(values=["Color",?"<b>YEAR</b>"],??#?表頭名稱line_color='white',?fill_color='white',align='center',?font=dict(color='black',?size=12)),#?單元格cells=dict(values=[df.Color,?df.Year],??#?兩個列屬性line_color=[df.Color],?fill_color=[df.Color],align='center',?font=dict(color='black',?size=13))) ])fig.show()表格數據滑動
當DataFrame中的數據過多的時候,我們可以進行滑動展示和查看:
student?=?pd.DataFrame({"性別":["小明","小紅","小周","小孫","小蘇"]?*?100,??#?將數據同時擴大100倍"年齡":[19,29,32,20,18]?*?100,"性別":["男","女","男","女","男"]?*?100,"成績":[590,588,601,670,555]?*?100}) student #?繪圖fig?=?go.Figure(data=[go.Table(header=dict(values=list(student.columns),??#?表頭取值是data列屬性fill_color='paleturquoise',??#?填充色和文本位置align='left'),cells=dict(values=[student.性別,student.年齡,student.成績],??#?單元格的取值就是每個列屬性的Series取值fill_color='lavender',align='left'))] )fig.show()creat_table
第二種方法是使用圖形工廠中的creat_table方法來生成
基礎圖表生成
DataFrame數據生成表格
import?plotly.figure_factory?as?ff fig?=?ff.create_table(tips)???#?將生成的tips數據放入 fig.show()數據中添加鏈接
設置寬度
import?plotly.figure_factory?as?ffdata?=?[['姓名',?'年齡',?'成績'],??#?表頭['小明',?20,?620],??#?每個列表代表一行記錄['小紅',?22,?677],['小周',?19,?606]]fig?=?ff.create_table(data,height_constant=20)??#?改變寬度 #fig?=?ff.create_table(data,height_constant=50)fig.show()改變寬度后的樣子:
顏色設置
import?plotly.figure_factory?as?ff#?顏色設置 colorscale?=?[[0,?'#4d004c'],[.5,?'#f2e5ff'],[1,?'#ffffff']]??#?表格中設置3種顏色 #colorscale?=?[[0,?'#4d004c'],[.25,'#0ac37d'],[.5,?'#f2e5ff'],[.75,'#afc271'],[1,?'#1ff1ff']]??#?5種顏色fig?=?ff.create_table(tips,?colorscale=colorscale)???fig.show()字體顏色設置
import?plotly.figure_factory?as?ffdata?=?[['name',?'rank'],?['小明',?1],?['小紅',?2],?['小周',?3],?['小張',?4],?['小孫',?5],?['小王',?6]]#?顏色設置 colorscale?=?[[0,?'#272D31'],[.5,?'#ff9f9f'],[1,?'#ffffff']]#?字體顏色設置 font=['#7CFCFC',?'#0FEE00',?'#008B00',?'#F04F00',?'#6A0000',?'#CD0000',?'#FF3030']fig?=?ff.create_table(data,??#?添加數據、顏色colorscale=colorscale,?font_colors=font)fig.layout.width=500??#?表格整體寬度設置fig.show()圖形和表格聯用
采用的消費數據集tips
import?plotly.graph_objs?as?go import?plotly.figure_factory?as?ff#?添加表格 fig?=?ff.create_table(tips)#?添加圖形 fig.add_trace(go.Scatter(x=tips["tip"],y=tips["total_bill"],marker=dict(color='#9099ff'),??#?標記顏色name="total_bill?<br>tip",xaxis='x2',?yaxis='y2' ))fig.add_trace(go.Scatter(x=tips["size"],y=tips["total_bill"],marker=dict(color='#a099af'),name="total_bill?<br>size",xaxis='x2',?yaxis='y2' ))fig.update_layout(title_text="消費數據圖表聯合",height=500,margin={"t":75,"b":100},xaxis?=?{'domain':?[0,?.45]},xaxis2?=?{'domain':?[0.6,?1.]},yaxis2?=?{'anchor':?'x2',?'title':?'tips'})fig.show()將圖形豎直方向上排列:
import?plotly.graph_objs?as?go import?plotly.figure_factory?as?ff#?添加表格 fig?=?ff.create_table(tips)#?添加圖形 fig.add_trace(go.Scatter(x=tips["tip"],y=tips["total_bill"],marker=dict(color='#9099ff'),??#?標記顏色name="total_bill?<br>tip",xaxis='x2',?yaxis='y2' ))fig.add_trace(go.Scatter(x=tips["size"],y=tips["total_bill"],marker=dict(color='#a099af'),name="total_bill?<br>size",xaxis='x2',?yaxis='y2' ))fig.update_layout(title_text="消費數據圖表聯合",height=800,margin={"t":75,"l":50},yaxis?=?{'domain':?[0,?.5]},??#?domain?圖形占比范圍xaxis2?=?{'anchor':?"y2"},??#?anchor表示是和y2一起作為繪圖的坐標軸yaxis2?=?{'domain':?[0.6,?1],?'anchor':'x2',?'title':?'tips'}? )fig.show() 往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》課件合集 本站qq群851320808,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【Python】你的表格太丑了!能美化下吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开机按f12怎么恢复系统 开机按f12
- 下一篇: form:radiobuttons单选按