這5種動(dòng)態(tài)炫酷圖,用Python就可以畫!
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
作者丨Liana Mehrabyan

數(shù)據(jù)可以幫助我們描述這個(gè)世界、闡釋自己的想法和展示自己的成果,但如果只有單調(diào)乏味的文本和數(shù)字,我們卻往往能難抓住觀眾的眼球。而很多時(shí)候,一張漂亮的可視化圖表就足以勝過千言萬語。本文將介紹 5 種基于 Plotly 的可視化方法,你會(huì)發(fā)現(xiàn),原來可視化不僅可用直方圖和箱形圖,還能做得如此動(dòng)態(tài)好看甚至可交互。

pip?install?plotly

import?plotly.express?as?px
from?vega_datasets?import?data
df?=?data.disasters()
df?=?df[df.Year?>?1990]
fig?=?px.bar(df,
?????????????y="Entity",
?????????????x="Deaths",
?????????????animation_frame="Year",
?????????????orientation= h ,
?????????????range_x=[0,?df.Deaths.max()],
?????????????color="Entity")
#?improve?aesthetics?(size,?grids?etc.)
fig.update_layout(width=1000,
??????????????????height=800,
??????????????????xaxis_showgrid=False,
??????????????????yaxis_showgrid=False,
??????????????????paper_bgcolor= rgba(0,0,0,0) ,
??????????????????plot_bgcolor= rgba(0,0,0,0) ,
??????????????????title_text= Evolution?of?Natural?Disasters ,
??????????????????showlegend=False)
fig.update_xaxes(title_text= Number?of?Deaths )
fig.update_yaxes(title_text=)
fig.show()
import?plotly.express?as?px
df?=?px.data.gapminder()
fig?=?px.scatter(
????df,
????x="gdpPercap",
????y="lifeExp",
????animation_frame="year",
????size="pop",
????color="continent",
????hover_name="country",
????log_x=True,
????size_max=55,
????range_x=[100,?100000],
????range_y=[25,?90],
????#???color_continuous_scale=px.colors.sequential.Emrld
)
fig.update_layout(width=1000,
??????????????????height=800,
??????????????????xaxis_showgrid=False,
??????????????????yaxis_showgrid=False,
??????????????????paper_bgcolor= rgba(0,0,0,0) ,
??????????????????plot_bgcolor= rgba(0,0,0,0) )

import?plotly.graph_objects?as?go
import?plotly.express?as?px
import?numpy?as?np
import?pandas?as?pd
df?=?px.data.tips()
fig?=?go.Figure(go.Sunburst(
????labels=["Female",?"Male",?"Dinner",?"Lunch",? Dinner? ,? Lunch? ],
????parents=["",?"",?"Female",?"Female",? Male ,? Male ],
????values=np.append(
????????df.groupby( sex ).tip.mean().values,
????????df.groupby([ sex ,? time ]).tip.mean().values),
????marker=dict(colors=px.colors.sequential.Emrld)),
????????????????layout=go.Layout(paper_bgcolor= rgba(0,0,0,0) ,
?????????????????????????????????plot_bgcolor= rgba(0,0,0,0) ))
fig.update_layout(margin=dict(t=0,?l=0,?r=0,?b=0),
??????????????????title_text= Tipping?Habbits?Per?Gender,?Time?and?Day )
fig.show()

import?plotly.graph_objects?as?go
import?plotly.express?as?px
import?pandas?as?pd
import?numpy?as?np
df?=?px.data.tips()
fig?=?go.Figure(go.Sunburst(labels=[
????"Female",?"Male",?"Dinner",?"Lunch",? Dinner? ,? Lunch? ,? Fri ,? Sat ,
???? Sun ,? Thu ,? Fri? ,? Thu? ,? Fri?? ,? Sat?? ,? Sun?? ,? Fri??? ,? Thu???
],
????????????????????????????parents=[
????????????????????????????????"",?"",?"Female",?"Female",? Male ,? Male ,
???????????????????????????????? Dinner ,? Dinner ,? Dinner ,? Dinner ,
???????????????????????????????? Lunch ,? Lunch ,? Dinner? ,? Dinner? ,
???????????????????????????????? Dinner? ,? Lunch? ,? Lunch?
????????????????????????????],
????????????????????????????values=np.append(
????????????????????????????????np.append(
????????????????????????????????????df.groupby( sex ).tip.mean().values,
????????????????????????????????????df.groupby([ sex ,
???????????????????????????????????????????????? time ]).tip.mean().values,
????????????????????????????????),
????????????????????????????????df.groupby([ sex ,? time ,
???????????????????????????????????????????? day ]).tip.mean().values),
????????????????????????????marker=dict(colors=px.colors.sequential.Emrld)),
????????????????layout=go.Layout(paper_bgcolor= rgba(0,0,0,0) ,
?????????????????????????????????plot_bgcolor= rgba(0,0,0,0) ))
fig.update_layout(margin=dict(t=0,?l=0,?r=0,?b=0),
??????????????????title_text= Tipping?Habbits?Per?Gender,?Time?and?Day )
fig.show()

import?plotly.express?as?px
from?vega_datasets?import?data
import?pandas?as?pd
df?=?data.movies()
df?=?df.dropna()
df[ Genre_id ]?=?df.Major_Genre.factorize()[0]
fig?=?px.parallel_categories(
????df,
????dimensions=[ MPAA_Rating ,? Creative_Type ,? Major_Genre ],
????color="Genre_id",
????color_continuous_scale=px.colors.sequential.Emrld,
)
fig.show()

?import?plotly.express?as?px
from?vega_datasets?import?data
import?pandas?as?pd
df?=?data.movies()
df?=?df.dropna()
df[ Genre_id ]?=?df.Major_Genre.factorize()[0]
fig?=?px.parallel_coordinates(
????df,
????dimensions=[
???????? IMDB_Rating ,? IMDB_Votes ,? Production_Budget ,? Running_Time_min ,
???????? US_Gross ,? Worldwide_Gross ,? US_DVD_Sales
????],
????color= IMDB_Rating ,
????color_continuous_scale=px.colors.sequential.Emrld)
fig.show()

?import?plotly.graph_objects?as?go
fig?=?go.Figure(go.Indicator(
????domain?=?{ x :?[0,?1],? y :?[0,?1]},
????value?=?4.3,
????mode?=?"gauge+number+delta",
????title?=?{ text :?"Success?Metric"},
????delta?=?{ reference :?3.9},
????gauge?=?{ bar :?{ color :?"lightgreen"},
???????? axis :?{ range :?[None,?5]},
????????????? steps ?:?[
?????????????????{ range :?[0,?2.5],? color :?"lightgray"},
?????????????????{ range :?[2.5,?4],? color :?"gray"}],
??????????}))
fig.show()
交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~
評(píng)論
圖片
表情

