參考資料:Plotly_express官方API教程、Plotly_express官方畫圖教程
一、概述
Plotly 是新一代的數(shù)據(jù)可視化神器,TopQ量化開源團隊,雖然plotly功能強大,卻一直沒有得到廣泛應(yīng)用,大部分py開發(fā)人員,還在使用陳舊的matplotlib,其中最重要的原因,就是plotly的設(shè)置過于繁瑣。為此,plotly推出了其簡化接口:Plotly Express,簡稱:px。
Plotly Express是對 Plotly.py 的高級封裝,采用ROR等新一代“約定優(yōu)先”編程模式,內(nèi)置了大量實用、現(xiàn)代的繪圖模板,用戶只需調(diào)用簡單的API函數(shù),即可快速生成漂亮的互動圖表。
Plotly Express內(nèi)置的圖表組合,涵蓋了90%常用的繪圖需要,Python畫圖,首推Plotly Express,毫無疑問。
二、圖表說明
scatter:散點圖
在散點圖中,每行data_frame由2D空間中的符號標記表示;scatter_3d:三維散點圖
在3D散點圖中,每行data_frame由3D空間中的符號標記表示;scatter_polar:極坐標散點圖
在極坐標散點圖中,每行data_frame由極坐標中的符號標記表示;scatter_ternary:三元散點圖
在三元散點圖中,每行data_frame由三元坐標中的符號標記表示;scatter_mapbox:地圖散點圖
在Mapbox散點圖中,每一行data_frame都由Mapbox地圖上的符號標記表示;scatter_geo:地理坐標散點圖
在地理散點圖中,每一行data_frame都由地圖上的符號標記表示;scatter_matrix:矩陣散點圖
在散點圖矩陣(或SPLOM)中,每行data_frame由多個符號標記表示,在2D散點圖的網(wǎng)格的每個單元格中有一個,其將每對dimensions彼此相對繪制;density_contour:密度等值線圖(雙變量分布)
在密度等值線圖中,行data_frame被組合在一起,成為輪廓標記,以可視化該值的聚合函數(shù)histfunc(例如:計數(shù)或總和)的2D分布z;density_heatmap:密度熱力圖(雙變量分布)
在密度熱圖中,行data_frame被組合在一起,成為彩色矩形瓦片,以可視化該值的聚合函數(shù)histfunc(例如:計數(shù)或總和)的2D分布 z;line:線條圖
在2D線圖中,每行data_frame表示為2D空間中折線標記的頂點;line_polar:極坐標線條圖
在極線圖中,每行data_frame表示為極坐標中折線標記的頂點;line_ternary:三元線條圖
在三元線圖中,每行data_frame表示為三元坐標中折線標記的頂點;line_mapbox:地圖線條圖
在Mapbox線圖中,每一行data_frame表示為Mapbox地圖上折線標記的頂點;line_geo:地理坐標線條圖
在地理線圖中,每一行data_frame表示為地圖上折線標記的頂點;parallel_coordinates:平行坐標圖
在平行坐標圖中,每行data_frame由折線標記表示,該折線標記穿過一組平行軸,每個平行軸對應(yīng)一個平行軸 dimensions;parallel_categories:并行類別圖
在并行類別(或平行集)圖中,每行data_frame與其他共享相同值的行組合,dimensions然后通過一組平行軸繪制為折線標記,每個平行軸對應(yīng)一個dimensions;area:堆積區(qū)域圖
在堆積區(qū)域圖中,每行data_frame表示為2D空間中折線標記的頂點。連續(xù)折線之間的區(qū)域被填充;bar:條形圖
在條形圖中,每行data_frame表示為矩形標記;bar_polar:極坐標條形圖
在極坐標條形圖中,每一行都data_frame表示為極坐標中的楔形標記;violin:小提琴圖
在小提琴圖中,將data_frame每一行分組成一個曲線標記,以便可視化它們的分布;box:箱形圖
在箱形圖中,data_frame的每一行被組合在一起成為盒須標記,以顯示它們的分布;strip:長條圖
在長條圖中,每一行data_frame表示為類別中的抖動標記;histogram:直方圖
在直方圖中,每一行data_frame被組合在一起成為矩形標記,以可視化該值的聚合函數(shù)histfunc(例如,計數(shù)或總和)的1D分布y(或者x,如果orientation是'h'時);choropleth:等高(值)區(qū)域地圖
在等值區(qū)域圖中,每行data_frame由地圖上的彩色區(qū)域標記表示;
三、子模塊
import numpy as np
import pandas as pd
import plotly_express as px
1. 內(nèi)置數(shù)據(jù)集
- 不同國家歷年GDP收入與人均壽命。包含字段:國家、洲、年份、平均壽命、人口數(shù)量、GDP、國家簡稱、國家編號;
gapminder = px.data.gapminder()
- 餐館的訂單流水。包含字段:總賬單、小費、性別、是否抽煙、星期幾、就餐時間、人數(shù);
tips = px.data.tips()
- 花:萼片長、萼片寬、花瓣長、花瓣寬、種類、種類編號
iris = px.data.iris()
- 風(fēng)力等級:方向、強度、數(shù)值
wind = px.data.wind()
- 2013年蒙特利爾市長選舉投票結(jié)果。包括字段:區(qū)域、Coderre票數(shù)、Bergeron票數(shù)、Joly票數(shù)、總票數(shù)、勝者、結(jié)果(占比分類)
election = px.data.election()
- 蒙特利爾一個區(qū)域中心附近的汽車共享服務(wù)的可用性。包括字段:緯度、經(jīng)度、汽車小時數(shù)、高峰小時
carshare = px.data.carshare()
2. 內(nèi)置顏色面板
- 開源包:卡通片的色彩和序列
px.colors.carto
- 開源包:CMOcean項目的色階
px.colors.cmocean
- 開源包:來自ColorBrewer2項目的色階和序列
px.colors.colorbrewer
- 周期性色標適用于具有自然周期結(jié)構(gòu)的連續(xù)數(shù)據(jù)
px.colors.cyclical
- 分散色標適用于具有自然中點的連續(xù)數(shù)據(jù)
px.colors.diverging
- 定性色標適用于沒有自然順序的數(shù)據(jù)
px.colors.qualitative
- 順序色標適用于大多數(shù)連續(xù)數(shù)據(jù)
px.colors.sequential
- 舉例展示
px.colors.qualitative.swatches()
-
舉例效果
四、 散點圖
1. 方法定義
def scatter(data_frame, x=None, y=None, color=None, symbol=None, size=None,
hover_name=None, hover_data=None, text=None, facet_row=None,
facet_col=None, error_x=None, error_x_minus=None, error_y=None,
error_y_minus=None, animation_frame=None, animation_group=None,
category_orders={}, labels={}, color_discrete_sequence=None,
color_discrete_map={}, color_continuous_scale=None,
range_color=None, color_continuous_midpoint=None,
symbol_sequence=None, symbol_map={}, opacity=None,
size_max=None, marginal_x=None, marginal_y=None, trendline=None,
trendline_color_override=None, log_x=False, log_y=False,
range_x=None, range_y=None, render_mode='auto', title=None,
template=None, width=None, height=None):
return
2. 參數(shù)說明
data_frame:目標數(shù)據(jù),類型為dataframe;
x :指定列名。列中的值用于笛卡爾坐標中沿 X 軸的定位標記。圖表類型為水平柱狀圖時,這些值用作參數(shù)histfunc的入?yún)ⅲ?/p>
y :指定列名。列中的值用于笛卡爾坐標中沿 Y 軸的定位標記。圖表類型為垂直柱狀圖時,這些值用作參數(shù)histfunc的入?yún)ⅲ?/p>
color:指定列名。為列中的不同值,(由px)自動匹配不同的標記顏色;若列為數(shù)值數(shù)據(jù)時,還會自動生成連續(xù)色標;
symbol:指定列名。為列中的不同值,設(shè)置不同的標記形狀;
size:指定列名。為列中的不同值,設(shè)置不同的標記大小;
hover_name:指定列名。將列中的值,加粗顯示在懸停提示內(nèi)容的正上方;
hover_data:指定列名組成的列表。所有列的值,顯示在懸停提示內(nèi)容中,位于x/y值的下方。指定的列與x/y重復(fù)時僅顯示1條數(shù)據(jù);
text:指定列名。列中的值,在圖的標記中顯示為文本標簽,同時也顯示在懸停提示內(nèi)容中;
facet_row:指定列名。根據(jù)列中不同的(N個)值,在垂直方向上顯示N個子圖,并在子圖右側(cè),垂直方向上,進行文本標注;
facet_col:指定列名。根據(jù)列中不同的(N個)值,在水平方向上顯示N個子圖,并在子圖上方,水平方向上,進行文本標注;
error_x:指定列名。顯示誤差線,列中的值用于調(diào)整 X 軸誤差線的大小。如果參數(shù)error_x_minus == None,則懸停提示內(nèi)容中,顯示對稱的誤差值;否則顯示正向的誤差值。該列通常是基于元數(shù)據(jù)加工的結(jié)果,目的是統(tǒng)計元數(shù)據(jù)指標的誤差值,一般會用元數(shù)據(jù)除以100的整數(shù)倍。
error_x_minus:指定列名。列中的值用于在負方向調(diào)整 X 軸誤差線的大小,如果參數(shù)error_x==None,則直接忽略該參數(shù);
error_y:指定列名。顯示誤差線,列中的值用于調(diào)整 Y 軸誤差線的大小。如果參數(shù)error_y_minus == None,則懸停提示內(nèi)容中,顯示對稱的誤差值;否則顯示正向的誤差值。該列通常是基于元數(shù)據(jù)加工的結(jié)果,目的是統(tǒng)計元數(shù)據(jù)指標的誤差值,一般會用元數(shù)據(jù)除以100的整數(shù)倍。
error_y_minus:指定列名。列中的值用于在負方向調(diào)整 Y 軸誤差線的大小,如果參數(shù)error_y==None,則直接忽略該參數(shù);
animation_frame:指定列名。列中的值用于為動畫幀指定標記,即設(shè)置滑動條;
animation_group:指定列名。列中的值用于提供跨動畫幀的聯(lián)動匹配;
category_orders:帶有字符串鍵和字符串列表值的字典,默認為{},此參數(shù)用于強制每列的特定值排序,dict鍵是列名,dict值是指定的排列順序的字符串列表。默認情況下,在Python 3.6+中,軸,圖例和構(gòu)面中的分類值的順序取決于在data_frame中首次出現(xiàn)的順序,而在3.6以下的Python中,默認不保證順序,該參數(shù)即為解決此類問題而設(shè)計;
labels:帶字符串鍵和字符串值的dict,默認為{}。此參數(shù)用于修改圖表中顯示的列名稱。默認情況下,圖表中使用列名稱作為軸標題、圖例條目、懸停提示等,此參數(shù)可以進行修改,dict的鍵是列名,dict值是修改的新名稱;
color_discrete_sequence:有效的CSS顏色字符串列表,取自plotly_express的color子模塊。當參數(shù)color指定的列不是數(shù)值數(shù)據(jù)時,該參數(shù)為color列指定顏色序列,若category_orders參數(shù)不為None,則按category_orders中設(shè)定的順序循環(huán)執(zhí)行color_discrete_sequence,除非color列的值在參數(shù)color_discrete_map入?yún)⒌膁ict鍵中;
color_discrete_map:帶字符串鍵和有效CSS顏色字符串值的dict,默認為{}。當參數(shù)color指定的列不是數(shù)值數(shù)據(jù)時,該參數(shù)用于將特定顏色分配給,與特定值對應(yīng)的標記,color_discrete_map中的鍵為color表示的列值。其優(yōu)先級高,會覆蓋color_discrete_sequence參數(shù)中的設(shè)置;
color_continuous_scale:有效的CSS顏色字符串列表,取自plotly_express的color子模塊。當參數(shù)color指定的列是數(shù)值數(shù)據(jù)時,為連續(xù)色標,設(shè)置指定的顏色序列。實際上,color指定列時,px會自動匹配顏色:1)若指定列是數(shù)值數(shù)據(jù),通過參數(shù)color_continuous_scale可以設(shè)定具體的顏色序列;2)若指定列是非數(shù)值數(shù)據(jù)時,通過參數(shù)color_discrete_sequence可以設(shè)定具體的顏色序列(循環(huán)匹配);通過參數(shù)color_discrete_map可以為列中不同值,指定具體的顏色;
range_color:2個數(shù)字元素組成的列表,參數(shù)用于設(shè)定連續(xù)色標上的自動縮放,即邊界的大小值;
color_continuous_midpoint:數(shù)字,默認為無。如果設(shè)置,則計算連續(xù)色標的邊界以具有所需的中點。 若使用plotly_express.colors.diverging色標作為color_continuous_scale的如參時,建議設(shè)置此值;
symbol_sequence:定義plotly.js符號的字符串列表。參數(shù)用于為列中的值分配符號,除非symbol的值是symbol_map中的鍵。分配符號的順序:按按category_orders中設(shè)置的順序循環(huán)執(zhí)行;
symbol_map:帶字符串鍵和定義plotly.js符號的字符串值的dict,默認值{}。該參數(shù)用于將特定符號分配給,與特定值對應(yīng)的標記,symbol_map中的鍵為symbol表示的列值。其優(yōu)先級高,會覆蓋symbol_sequence參數(shù)中的設(shè)置;
opacity:數(shù)字,介于0和1之間,設(shè)置標記的不透明度;
size_max:整數(shù),默認為20。使用size參數(shù)時,設(shè)置最大標記的大小;
marginal_x:字符串,取值:rug(細條)、box(箱圖)、violin(小提琴圖)、histogram(直方圖)。該參數(shù)用于在主圖上方,繪制一個水平子圖,以便對x分布,進行可視化;
marginal_y:字符串,取值:rug(細條)、box(箱圖)、violin(小提琴圖)、histogram(直方圖)。該參數(shù)用于在主圖右側(cè),繪制一個垂直子圖,以便對y分布,進行可視化;
trendline:字符串,取值:ols、lowess、None。取值為ols時,將為每個離散顏色/符號組,繪制一個普通最小二乘回歸線;取值為lowess時,則將為每個離散顏色/符號組,繪制局部加權(quán)散點圖平滑線;
trendline_color_override:字符串,有效的CSS顏色。如果設(shè)置了參數(shù)trendline趨勢線,則將以此顏色繪制所有趨勢線;
log_x:布爾值,默認為False。如果為True,則 X 軸在笛卡爾坐標系中進行對數(shù)縮放;
log_y:布爾值,默認為False。如果為True,則 Y 軸在笛卡爾坐標系中進行對數(shù)縮放;
range_x:2個數(shù)字元素組成的列表,用于設(shè)定笛卡爾坐標中 X 軸上的自動縮放,即邊界的大小值;
range_y:2個數(shù)字元素組成的列表,用于設(shè)定笛卡爾坐標中 Y 軸上的自動縮放,即邊界的大小值;
render_mode:字符串,取值:auto(默認)、svg、webgl。用于控制繪制標記的瀏覽器API,svg適用于少于1000的數(shù)據(jù),并允許完全矢量化輸出;webgl可以接收1000點以上的數(shù)據(jù);auto使用啟發(fā)式方法來選擇模式;
title:字符串,設(shè)置圖表的標題;
template:字符串或Plotly.py模板對象,設(shè)置圖表的背景顏色。有三個內(nèi)置的 Plotly 主題: plotly, plotly_white 和 plotly_dark;
width:整數(shù),默認無,設(shè)置圖表的寬度(以像素為單位);
height:整數(shù),默認600,設(shè)置圖表的高度(以像素為單位);
3. 說明
- 實際上,其它的圖表,其方法中的絕大多數(shù)參數(shù)和散點圖的參數(shù),用法基本相同,本文不再詳細解釋其它圖表的定義和方法,具體可以參見官方API文檔,下文會展示部分圖表的制作;
五、 圖表制作
1. 散點圖和折線圖
- 簡單散點圖
px.scatter(iris, x="sepal_width", y="sepal_length")
- 散點圖,為不同種類的花自動配置顏色
px.scatter(iris, x="sepal_width", y="sepal_length", color="species")
- 散點圖,分別在圖表的上方、右側(cè)增加直方圖、細條圖
px.scatter(iris, x="sepal_width", y="sepal_length", color="species",
marginal_y="rug", marginal_x="histogram")
- 散點圖,分別在圖表的上方、右側(cè)增加箱形圖、小提琴圖,并添加趨勢線
px.scatter(iris, x="sepal_width", y="sepal_length", color="species",
marginal_y="violin", marginal_x="box", trendline="ols")
- 散點圖,為標記添加x、y軸方向上的誤差線
iris["e"] = iris["sepal_width"]/100 --設(shè)置誤差值、刪除誤差值:del iris["e"]
px.scatter(iris, x="sepal_width", y="sepal_length", color="species",
error_x="e", error_y="e")
- 散點圖,在垂直(y)、水平(x)方向上,按指定的列,單獨展示子圖表,并為列值進行排序
px.scatter(tips, x="total_bill", y="tip", facet_row="time", facet_col="day",
color="smoker", trendline="ols",category_orders={"day": ["Thur",
"Fri", "Sat", "Sun"], "time": ["Lunch", "Dinner"]})
- 散點圖,顏色列為數(shù)值數(shù)據(jù)時,會自動展示色標
px.scatter(tips, x="total_bill", y="tip", color="size", facet_col="sex",
color_continuous_scale=px.colors.sequential.Viridis,
render_mode="webgl")
- 散點圖,設(shè)置標記大小依賴的列,對 x 軸進行縮放處理
px.scatter(gapminder.query("year==2007"), x="gdpPercap", y="lifeExp",
size="pop", color="continent",hover_name="country", log_x=True,
size_max=60)
- 散點圖,增加滑動條,設(shè)置坐標軸取值范圍
px.scatter(gapminder, x="gdpPercap", y="lifeExp", animation_frame="year",
animation_group="country", size="pop", color="continent",
hover_name="country", facet_col="continent",log_x=True,
size_max=45, range_x=[100,100000], range_y=[25,90])
- 矩陣散點圖,查看指標相關(guān)性
px.scatter_matrix(iris)
- 矩陣散點圖,指定部分列進行展示。散點圖矩陣(SPLOM)是允許可視化多個鏈接的散點圖,方便查看數(shù)據(jù)集中的每個變量與其他變量的關(guān)系。 數(shù)據(jù)集中的每一行都顯示為每個圖中的一個點,可以進行縮放、平移或選擇操作,所有圖都是鏈接在一起的
px.scatter_matrix(iris, dimensions=["sepal_width", "sepal_length",
"petal_width", "petal_length"], color="species")
- 平行坐標圖,多維數(shù)據(jù)連線,允許同時顯示3個以上的連續(xù)變量。 dataframe 中的每一行都是一行,可以拖動尺寸,以重新排序它們,并選擇值范圍之間的交叉點。
px.parallel_coordinates(iris, color="species_id", labels={"species_id":
"Species", "sepal_width": "Sepal Width", "sepal_length":
"Sepal Length", "petal_width": "Petal Width", "petal_length":
"Petal Length"},color_continuous_scale=px.colors.diverging.
Tealrose, color_continuous_midpoint=2)
- 并行類別圖,是并行坐標的分類模擬:使用它們可視化數(shù)據(jù)集中多組類別之間的關(guān)系
px.parallel_categories(tips, color="size", color_continuous_scale=px.
colors.sequential.Inferno)
- 線條圖,設(shè)置線條類型
px.line(gapminder, x="year", y="lifeExp", color="continent",
line_group="country", hover_name="country",
line_shape="spline", render_mode="svg")
- 堆積區(qū)域圖
px.area(gapminder, x="year", y="pop", color="continent",
line_group="country")
2. 可視化分布
- 密度等值線圖
px.density_contour(iris, x="sepal_width", y="sepal_length")
- 密度等值線圖,分別在圖表的上方、右側(cè)增加細條圖、直方圖
px.density_contour(iris, x="sepal_width", y="sepal_length", color="species",
marginal_x="rug", marginal_y="histogram")
- 密度熱力圖
px.density_heatmap(iris, x="sepal_width", y="sepal_length",
marginal_x="rug", marginal_y="histogram")
- 條形圖,設(shè)置堆積類型
px.bar(tips, x="sex", y="total_bill", color="smoker", barmode="group")
- 條形圖,在垂直(y)、水平(x)方向上,按指定的列,單獨展示子圖表,并為列值進行排序
px.bar(tips, x="sex", y="total_bill", color="smoker", barmode="group",
facet_row="time", facet_col="day", category_orders={"day": ["Thur",
"Fri", "Sat", "Sun"], "time": ["Lunch", "Dinner"]})
- 直方圖,在圖表的上方增加細條圖
px.histogram(tips, x="total_bill", y="tip", color="sex", marginal="rug",
hover_data=tips.columns)
- 直方圖,在垂直(y)、水平(x)方向上,按指定的列,單獨展示子圖表,并為列值進行排序
px.histogram(tips, x="sex", y="tip", histfunc="avg", color="smoker",
barmode="group", facet_row="time", facet_col="day",
category_orders={"day": ["Thur", "Fri", "Sat", "Sun"],
"time": ["Lunch", "Dinner"]})
- 長條圖,設(shè)置方向為水平
px.strip(tips, x="total_bill", y="time", orientation="h", color="smoker")
- 箱形圖,設(shè)置使用槽口繪制框
px.box(tips, x="day", y="total_bill", color="smoker", notched=True)
- 小提琴圖,同時在內(nèi)部顯示箱圖,展示所有采樣數(shù)據(jù)
px.violin(tips, y="tip", x="smoker", color="sex", box=True, points="all",
hover_data=tips.columns)
3. 三元坐標
- 三元散點圖,為不同的列,指定具體的顏色
px.scatter_ternary(election, a="Joly", b="Coderre", c="Bergeron", color="winner", size="total", hover_name="district",
size_max=15, color_discrete_map = {"Joly": "blue",
"Bergeron": "green", "Coderre":"red"} )
- 三元線條圖,設(shè)置短劃線模式
px.line_ternary(election, a="Joly", b="Coderre", c="Bergeron", color="winner",
line_dash="winner")
4. 3D坐標
- 三維散點圖,設(shè)置不同的標記形狀,并指定具體顏色
px.scatter_3d(election, x="Joly", y="Coderre", z="Bergeron", color="winner",
size="total", hover_name="district",symbol="result",
color_discrete_map = {"Joly": "blue", "Bergeron": "green",
"Coderre":"red"})
5. 極坐標
- 極坐標散點圖,指定顏色序列,沿極坐標中的角度軸定位標記
px.scatter_polar(wind, r="value", theta="direction", color="strength",
symbol="strength",color_discrete_sequence=px.colors.sequential.
Plotly[-2::-1])
- 極坐標線條圖
px.line_polar(wind, r="value", theta="direction", color="strength",
line_close=True,color_discrete_sequence=px.colors.sequential.Plotly[-2::-1])
- 極坐標條形圖,設(shè)置圖表背景顏色
px.bar_polar(wind, r="value", theta="direction", color="strength", template="plotly_dark",
color_discrete_sequence= px.colors.sequential.Plotly[-2::-1])
6. 地圖
- 地理坐標散點圖,設(shè)定滑動條,設(shè)定展示的地圖類型:自然地圖,即平面圖
px.scatter_geo(gapminder, locations="iso_alpha", color="continent", hover_name="country", size="pop",
animation_frame="year", projection="natural earth")
- 地理坐標線條圖,設(shè)定展示的地圖類型:正交地圖,即立體地圖
px.line_geo(gapminder.query("year==2007"), locations="iso_alpha",
color="continent", projection="orthographic")
- 等高(值)區(qū)域地圖,設(shè)定滑動條,指定具體顏色序列范圍
px.choropleth(gapminder, locations="iso_alpha", color="lifeExp",
hover_name="country", animation_frame="year",color_continuous_scale=px.colors.sequential.Plasma, range_color=[20,80])
六、 Plotly生態(tài)
Plotly.py 已經(jīng)發(fā)展成為一個非常強大的可視化交互工具,它可以讓你控制圖形的幾乎每個方面,從圖例的位置到刻度的長度。推出 Plotly Express 的主要目標是使 Plotly.py 更容易用于探索和快速迭代;
對于Plotly 生態(tài)系統(tǒng),一旦使用 Plotly Express 創(chuàng)建了一個圖形,就可以使用Themes,使用 FigureWidgets 進行命令性編輯,使用 Orca 將其導(dǎo)出為幾乎任何文件格式,或者在 GUI JupyterLab 圖表編輯器中編輯它;
主題(Themes)允許控制圖形范圍的設(shè)置,如邊距、字體、背景顏色、刻度定位等,也可以使用模板參數(shù),應(yīng)用任何命名的主題或主題對象;
Plotly_express 的輸出,繼承自 Plotly.py 的 Figure 類 ExpressFigure 的對象,這意味著可以使用任何 Figure 的訪問器和方法,來改變 px 生成的圖表,通常借助于 .update() 函數(shù)來調(diào)用;
demo:對Plotly_express生成的圖表,設(shè)置標記類型、坐標軸標簽名稱、坐標軸刻度傾斜角度、顯示坐標軸線、坐標軸刻度間隔等;
- 修改前--代碼
# 選取2個國家:中國、阿富汗
country_list = ["China", "Afghanistan"]
tem_gapminder = gapminder.query("country == @country_list")
fig = px.line(tem_gapminder, x="year", y="lifeExp", color="country",
width=1000, height=400, title="國家人均壽命", template="",
line_shape="spline", line_dash="country")
-
修改前--圖表
- 修改后--代碼
# 選取2個國家:中國、阿富汗
country_list = ["China", "Afghanistan"]
tem_gapminder = gapminder.query("country == @country_list")
fig = px.line(tem_gapminder, x="year", y="lifeExp", color="country",
width=1000, height=400, title="國家人均壽命", template="",
line_shape="spline", line_dash="country")
# 修改時添加的代碼
fig.update_traces(dict(mode="markers+lines"))
fig.update(layout=dict(xaxis=dict(title="年份", tickangle=-30,
showline=True, nticks=20),
yaxis=dict(title="人均壽命", showline=True)))
-
修改后--圖表
Plotly Express 作為一個新的 Python 可視化庫,在 Plotly 生態(tài)系統(tǒng)下,將會迅速發(fā)展,所以不要猶豫,立即開始使用 Plotly Express 吧!