tft每日頭條

 > 圖文

 > python畫折線圖顯示數據

python畫折線圖顯示數據

圖文 更新时间:2024-06-26 18:17:05

--人生不是賽場,夢想不容退場,學習編程成就更好的自己--

Python語言簡潔生動,特别适合文科生學習入門IT世界,用幾十行代碼就能夠做一個完整的爬蟲腳本,開發效率杠杠的!短時間内即可解決工作和學習中碰到的各種棘手問題。(本人外語專業畢業,機緣巧合愛上編程,自學道路曲曲折折,痛并快樂!)在這裡總結一下自學Python遇到的難點和重點,分享碼過的代碼和要點總結,希望能夠給初學者一點啟示和鼓勵,同時願意結交更多大神交流有助提升自己的水平。

今天分享如何使用Plotly繪制一種大家熟知的圖表--折線圖:一般來講折線圖描述随着時間推移相關維度數值的變化情況,例如:X軸為時間軸,Y軸為收入數值,接下來還以Plotly内置的世界人口數據集為案例進行演示:

1.調取歐洲幾個典型國家作為數據集來繪制折線圖:

python畫折線圖顯示數據(文科生自學Python-用Plotly繪制折線圖)1

2.使用line函數進行制圖如下:

作圖需要注意X軸年份數據盡量文本化(Year方便顯示),看到幾行代碼就能輕松搞定,但是折線圖的顔色和風格還是差點意思,如何能夠私人定制呢?接下來看看另一種畫折線圖的方法:

python畫折線圖顯示數據(文科生自學Python-用Plotly繪制折線圖)2

2.創建go.Figure畫折線圖:

作圖之前先對數據進行預處理,把每個國家數據單獨提取成各自獨立的數據集合,如下:

python畫折線圖顯示數據(文科生自學Python-用Plotly繪制折線圖)3

通過go.Figure來創建底層畫布,其方法有點像畫油畫,一層一層把想要的數據放上去,然後再對标題和背景顔色等進行渲染完成即可,如下:

python畫折線圖顯示數據(文科生自學Python-用Plotly繪制折線圖)4

看成品如下:

python畫折線圖顯示數據(文科生自學Python-用Plotly繪制折線圖)5

也可以調整一下背景顔色,如下:

python畫折線圖顯示數據(文科生自學Python-用Plotly繪制折線圖)6

看成品如下:

是不是有點專業的味道了?可見go.Figure方法真是奇妙哇,小夥伴們趕緊去官網上查查資料動手試一下吧。

python畫折線圖顯示數據(文科生自學Python-用Plotly繪制折線圖)7

代碼彙總如下:

#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每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved