您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何在python中使用Plotly繪圖工具,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
1)相關說明
plotly是一個基于javascript的繪圖庫,plotly繪圖種類豐富,效果美觀;
易于保存與分享plotly的繪圖結果,并且可以與Web無縫集成;
ploty默認的繪圖結果,是一個HTML網頁文件,通過瀏覽器可以直接查看;
2)plotly與matplotlib、seaborn的關系
??需要注意的是,ployly繪圖庫與matplotlib繪圖庫、seaborn繪圖庫并沒有什么關系。也就是說說plotly是一個單獨的繪圖庫,有自己獨特的繪圖語法、繪圖參數和繪圖原理,因此我們需要單獨學習它。
??對于我們做數據分析的人員來說,一般用的都是離線繪圖庫。在線繪圖庫需要的話,可以自己百度研究。
import os import numpy as np import pandas as pd import plotly as py import plotly.graph_objs as go import plotly.expression as px from plotly import tools import warnings warnings.filterwarnings("ignore")
1)ployly常用的兩個繪圖模塊:graph_objs和expression
??graph_objs和expression是plotly里面兩個很常用的繪圖庫,graph_objs相當于matplotlib,在數據組織上比較費勁,但是任然比起matplotlib繪圖更簡單、更好看。這里說的費勁是相對于expression庫來說的。expression庫相當于seaborn的地位,在數據組織上較為容易,繪圖比起seaborn來說,也更加容易。這里你心里有個印象即可,知道這兩個繪圖庫很牛,就行了。
??對于graph_objs繪圖庫,我們常命名為“go”(import plotly.graph_objs as go);對于expression繪圖庫,我們常命名為“px”(import plotly.expression as px)。
2)graph_objs(“go”)庫的繪圖原理
① 簡單的案例說明
df = pd.read_excel("plot.xlsx") # 步驟一 trace0 = go.Scatter(x=df["年份"],y=df["城鎮居民"],name="城鎮居民") trace1 = go.Scatter(x=df["年份"],y=df["農村居民"],name="農村居民") # 步驟二 data = [trace0,trace1] # 步驟三 fig = go.Figure(data) # 步驟四 fig.update_layout( title="城鄉居民家庭人均收入", xaxis_title="年份", yaxis_title="人均收入(元)" ) # 步驟五 fig.show()
結果如下:
② 原理說明
1、繪制圖形軌跡,在ployly里面叫做trace,每一個軌跡是一個trace。
2、將軌跡包裹成一個列表,形成一個“軌跡列表”。一個軌跡放在一個列表中,多個軌跡也是放在一個列表中。
3、創建畫布的同時,并將上述的“軌跡列表”,傳入到Figure()中。
4、使用Layout添加其他的繪圖參數,完善圖形。
5、展示圖形。
3)expression(“px”)庫的繪圖原理
① 簡單的案例說明
iris = pd.read_excel("iris.xlsx",sheet_name="Sheet2") fig = px.scatter(iris,x="花萼長度",y="花萼寬度",color="屬種") fig.show()
結果如下:
② 原理說明
1、直接使用px調用某個繪圖方法時,會自動創建畫布,并畫出圖形。
2、展示圖形。
1)直接下載下來:保存成png靜態圖片
2)使用py.offline.plot(fig,filename=“XXX.html”)代碼保存成html網頁動態圖片
iris = pd.read_excel("iris.xlsx",sheet_name="Sheet2") fig = px.scatter(iris,x="花萼長度",y="花萼寬度",color="屬種") py.offline.plot(fig,filename="iris1.html")
結果如下:該文件是一個html文件,這里上傳不了,自己下去嘗試一下就知道了。
3)總結說明
??使用“照相機”那個下載按鈕,可以直接將圖片下載保存在本地,但是這個圖片是一個靜態圖片,沒有交互性。但是使用py.offline.plot()方法,可以將圖片保存成一個html的網頁格式,其他人可以在電腦上直接打開這個html網頁,并且保留了圖片的原始樣式,具有交互性。?
1)數據集如下
2)繪制不同地區的“任務完成量”和“任務完成率”情況
df = pd.read_excel("double_y.xlsx") x = df["地區"] y1 = df["完成量"] y2 = df["完成率"] trace0 = go.Bar(x=x,y=y1, marker=dict(color=["red","blue","green","darkgrey","darkblue","orange"]), opacity=0.5, name="不同地區的任務完成量") trace1 = go.Scatter(x=x,y=y2, mode="lines", name="不同地區的任務完成率", # 【步驟一】:使用這個參數yaxis="y2",就是繪制雙y軸圖 yaxis="y2") data = [trace0,trace1] layout = go.Layout(title="不同地區的任務完成量和任務完成率情況", xaxis=dict(title="地區"), yaxis=dict(title="不同地區的任務完成量"), # 【步驟二】:給第二個y軸,添加標題,指定第二個y軸,在右側。 yaxis2=dict(title="不同地區的任務完成率",overlaying="y",side="right"), legend=dict(x=0.78,y=0.98,font=dict(size=12,color="black"))) fig = go.Figure(data=data,layout=layout) fig.show()
結果如下:
1)相關庫和方法介紹
1、繪制多個子圖,需要先導入tools庫。from plotly import tools
2、tools.make_subplots(rows= ,cols=)用于指定繪圖布局,rows和cols表示將畫布布局成幾行幾列。
3、fig.append_trace()將每個圖形軌跡trace,繪制在不同的位置上。
2)分別繪制不同地區的“任務完成量”和“任務完成率”情況
# 步驟一:導入相關庫 from plotly import tools # 步驟二:指定繪圖布局 fig = tools.make_subplots(rows=2,cols=1) # 步驟三:繪制圖形軌跡 trace0 = go.Bar(x=x,y=y1, marker=dict(color=["red","blue","green","darkgrey","darkblue","orange"]), opacity=0.5, name="不同地區的任務完成量") trace1 = go.Scatter(x=x,y=y2, mode="lines", name="不同地區的任務完成率", line=dict(width=2,color="red")) # 步驟四:將第一個軌跡,添加到第1行的第1個位置 # 將第二個軌跡,添加到第2行的第1個位置 fig.append_trace(trace0,1,1) fig.append_trace(trace1,2,1) # 步驟四:根據自己的需求,給圖形添加標題。height、width參數用于指定圖形的寬和高 fig.update_layout(title="不同地區的任務量與完成量",height=800,width=800) # 步驟五:展示圖形 fig.show()
結果如下:
關于如何在python中使用Plotly繪圖工具就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。