--人生不是賽場,夢想不容退場,學習編程成就更好的自己--
Python語言簡潔生動,特别适合文科生學習入門IT世界,用幾十行代碼就能夠做一個完整的爬蟲腳本,開發效率杠杠的!短時間内即可解決工作和學習中碰到的各種棘手問題。(本人外語專業畢業,機緣巧合愛上編程,自學道路曲曲折折,痛并快樂!)在這裡總結一下自學Python遇到的難點和重點,分享碼過的代碼和要點總結,希望能夠給初學者一點啟示和鼓勵,同時願意結交更多大神交流有助提升自己的水平。
今天分享如何使用Plotly繪制一種大家熟知的圖表--折線圖:一般來講折線圖描述随着時間推移相關維度數值的變化情況,例如:X軸為時間軸,Y軸為收入數值,接下來還以Plotly内置的世界人口數據集為案例進行演示:
1.調取歐洲幾個典型國家作為數據集來繪制折線圖:
2.使用line函數進行制圖如下:
作圖需要注意X軸年份數據盡量文本化(Year方便顯示),看到幾行代碼就能輕松搞定,但是折線圖的顔色和風格還是差點意思,如何能夠私人定制呢?接下來看看另一種畫折線圖的方法:
2.創建go.Figure畫折線圖:
作圖之前先對數據進行預處理,把每個國家數據單獨提取成各自獨立的數據集合,如下:
通過go.Figure來創建底層畫布,其方法有點像畫油畫,一層一層把想要的數據放上去,然後再對标題和背景顔色等進行渲染完成即可,如下:
看成品如下:
也可以調整一下背景顔色,如下:
看成品如下:
是不是有點專業的味道了?可見go.Figure方法真是奇妙哇,小夥伴們趕緊去官網上查查資料動手試一下吧。
代碼彙總如下:
#import plotly to get the datasets
from plotly.subplots import make_subplots
import plotly.graph_objs as go
import plotly.offline as py
import plotly_express as px
#Get a dataset of dedicated countries
df = px.data.gapminder().query("country == ['Germany','France','Italy','Spain']")
df["life"] = df["lifeExp"].astype(int)
df["pop-Million"] = (df["pop"]/1000000).astype(int) #Get pop 100W /人口數量以百萬單位來顯示
df["gdpPercap-Thousand"] = (df["gdpPercap"]/1000).astype(float) #Get gdpPercap as Tousand /人均GDP以千元單位顯示
df["Year"] = df["year"].astype(str) #Convert year as int into string
display(df.head())
fig = px.line(df, x="Year", y="pop-Million",color="country")
fig.update_layout(title="歐洲主要幾個國家人口變化",xaxis_title="年份",yaxis_title='人口數量-百萬')
fig.show()
#get datasets seperately
df_Germany = df[df["country"]=="Germany"]
df_France = df[df["country"]=="France"]
df_Italy = df[df["country"]=="Italy"]
df_Spain = df[df["country"]=="Spain"]
display(df_Germany.head())
#get the lines for countries one by one
fig = go.Figure()
fig.add_trace(go.Scatter(x=df_Germany["Year"], y=df_Germany["pop-Million"],name='Pop Change of Germany',\
line=dict(color='firebrick', width=4))) #油畫第一層-德國數據
fig.add_trace(go.Scatter(x=df_France["Year"], y=df_France["pop-Million"],name='Pop Change of France',\
line=dict(color='royalblue', width=4,dash="dashdot"))) #油畫第二層-法國數據
fig.add_trace(go.Scatter(x=df_Italy["Year"], y=df_Italy["pop-Million"],name='Pop Change of Italy',\
line=dict(color='firebrick', width=4,dash="dash"))) #油畫第三層-意大利數據
fig.add_trace(go.Scatter(x=df_Spain["Year"], y=df_Spain["pop-Million"],name='Pop Change of Spain',\
line=dict(color='royalblue', width=4, dash='dot'))) #油畫第四層-西班牙數據
fig.update_layout(title="不同歐洲國家人口變化",xaxis_title="年份",yaxis_title='人口數量',showlegend=True) #渲染标題有和備注等
fig.show()
#get datasets seperately
df_Germany = df[df["country"]=="Germany"]
df_France = df[df["country"]=="France"]
df_Italy = df[df["country"]=="Italy"]
df_Spain = df[df["country"]=="Spain"]
#get the lines for countries one by one
fig = go.Figure()
fig.add_trace(go.Scatter(x=df_Germany["Year"], y=df_Germany["pop-Million"],name='Pop Change of Germany',\
line=dict(color='firebrick', width=4)))
fig.add_trace(go.Scatter(x=df_France["Year"], y=df_France["pop-Million"],name='Pop Change of France',\
line=dict(color='royalblue', width=4,dash="dashdot")))
fig.add_trace(go.Scatter(x=df_Italy["Year"], y=df_Italy["pop-Million"],name='Pop Change of Italy',\
line=dict(color='firebrick', width=4,dash="dash")))
fig.add_trace(go.Scatter(x=df_Spain["Year"], y=df_Spain["pop-Million"],name='Pop Change of Spain',\
line=dict(color='royalblue', width=4, dash='dot')))
fig.update_layout(title="不同歐洲國家人口變化",xaxis_title="年份",yaxis_title='人口數量')
fig.update_layout(showlegend=True,plot_bgcolor="white")
fig.show()
END
我為人人,人人為我!!歡迎大家關注,點贊和轉發!!!
~~人生不是賽場,夢想不容退場~~不斷努力學習蛻變出一個更好的自己,不斷分享學習路上的收獲和感悟幫助他人成就自己!!!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!