python Plotly繪圖工具的簡(jiǎn)單使用
1、plotly庫(kù)的相關(guān)介紹
1)相關(guān)說(shuō)明
- plotly是一個(gè)基于javascript的繪圖庫(kù),plotly繪圖種類豐富,效果美觀;
- 易于保存與分享plotly的繪圖結(jié)果,并且可以與Web無(wú)縫集成;
- ploty默認(rèn)的繪圖結(jié)果,是一個(gè)HTML網(wǎng)頁(yè)文件,通過(guò)瀏覽器可以直接查看;

2)plotly與matplotlib、seaborn的關(guān)系
需要注意的是,ployly繪圖庫(kù)與matplotlib繪圖庫(kù)、seaborn繪圖庫(kù)并沒(méi)有什么關(guān)系。也就是說(shuō)說(shuō)plotly是一個(gè)單獨(dú)的繪圖庫(kù),有自己獨(dú)特的繪圖語(yǔ)法、繪圖參數(shù)和繪圖原理,因此我們需要單獨(dú)學(xué)習(xí)它。
2、導(dǎo)入相關(guān)庫(kù)
對(duì)于我們做數(shù)據(jù)分析的人員來(lái)說(shuō),一般用的都是離線繪圖庫(kù)。在線繪圖庫(kù)需要的話,可以自己百度研究。
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")
3、plotly繪圖原理
1)ployly常用的兩個(gè)繪圖模塊:graph_objs和expression
graph_objs和expression是plotly里面兩個(gè)很常用的繪圖庫(kù),graph_objs相當(dāng)于matplotlib,在數(shù)據(jù)組織上比較費(fèi)勁,但是任然比起matplotlib繪圖更簡(jiǎn)單、更好看。這里說(shuō)的費(fèi)勁是相對(duì)于expression庫(kù)來(lái)說(shuō)的。expression庫(kù)相當(dāng)于seaborn的地位,在數(shù)據(jù)組織上較為容易,繪圖比起seaborn來(lái)說(shuō),也更加容易。這里你心里有個(gè)印象即可,知道這兩個(gè)繪圖庫(kù)很牛,就行了。
對(duì)于graph_objs繪圖庫(kù),我們常命名為“go”(import plotly.graph_objs as go);對(duì)于expression繪圖庫(kù),我們常命名為“px”(import plotly.expression as px)。
2)graph_objs(“go”)庫(kù)的繪圖原理
① 簡(jiǎn)單的案例說(shuō)明
df = pd.read_excel("plot.xlsx")
# 步驟一
trace0 = go.Scatter(x=df["年份"],y=df["城鎮(zhèn)居民"],name="城鎮(zhèn)居民")
trace1 = go.Scatter(x=df["年份"],y=df["農(nóng)村居民"],name="農(nóng)村居民")
# 步驟二
data = [trace0,trace1]
# 步驟三
fig = go.Figure(data)
# 步驟四
fig.update_layout(
title="城鄉(xiāng)居民家庭人均收入",
xaxis_title="年份",
yaxis_title="人均收入(元)"
)
# 步驟五
fig.show()
結(jié)果如下:

② 原理說(shuō)明
1、繪制圖形軌跡,在ployly里面叫做trace,每一個(gè)軌跡是一個(gè)trace。
2、將軌跡包裹成一個(gè)列表,形成一個(gè)“軌跡列表”。一個(gè)軌跡放在一個(gè)列表中,多個(gè)軌跡也是放在一個(gè)列表中。
3、創(chuàng)建畫布的同時(shí),并將上述的“軌跡列表”,傳入到Figure()中。
4、使用Layout添加其他的繪圖參數(shù),完善圖形。
5、展示圖形。
3)expression(“px”)庫(kù)的繪圖原理
① 簡(jiǎn)單的案例說(shuō)明
iris = pd.read_excel("iris.xlsx",sheet_name="Sheet2")
fig = px.scatter(iris,x="花萼長(zhǎng)度",y="花萼寬度",color="屬種")
fig.show()
結(jié)果如下:

② 原理說(shuō)明
1、直接使用px調(diào)用某個(gè)繪圖方法時(shí),會(huì)自動(dòng)創(chuàng)建畫布,并畫出圖形。
2、展示圖形。
4、保存圖形的兩種方式
1)直接下載下來(lái):保存成png靜態(tài)圖片

2)使用py.offline.plot(fig,filename=“XXX.html”)代碼保存成html網(wǎng)頁(yè)動(dòng)態(tài)圖片
iris = pd.read_excel("iris.xlsx",sheet_name="Sheet2")
fig = px.scatter(iris,x="花萼長(zhǎng)度",y="花萼寬度",color="屬種")
py.offline.plot(fig,filename="iris1.html")
結(jié)果如下:該文件是一個(gè)html文件,這里上傳不了,自己下去嘗試一下就知道了。
3)總結(jié)說(shuō)明
使用“照相機(jī)”那個(gè)下載按鈕,可以直接將圖片下載保存在本地,但是這個(gè)圖片是一個(gè)靜態(tài)圖片,沒(méi)有交互性。但是使用py.offline.plot()方法,可以將圖片保存成一個(gè)html的網(wǎng)頁(yè)格式,其他人可以在電腦上直接打開(kāi)這個(gè)html網(wǎng)頁(yè),并且保留了圖片的原始樣式,具有交互性。
5、繪制雙y軸圖
1)數(shù)據(jù)集如下

2)繪制不同地區(qū)的“任務(wù)完成量”和“任務(wù)完成率”情況
df = pd.read_excel("double_y.xlsx")
x = df["地區(qū)"]
y1 = df["完成量"]
y2 = df["完成率"]
trace0 = go.Bar(x=x,y=y1,
marker=dict(color=["red","blue","green","darkgrey","darkblue","orange"]),
opacity=0.5,
name="不同地區(qū)的任務(wù)完成量")
trace1 = go.Scatter(x=x,y=y2,
mode="lines",
name="不同地區(qū)的任務(wù)完成率",
# 【步驟一】:使用這個(gè)參數(shù)yaxis="y2",就是繪制雙y軸圖
yaxis="y2")
data = [trace0,trace1]
layout = go.Layout(title="不同地區(qū)的任務(wù)完成量和任務(wù)完成率情況",
xaxis=dict(title="地區(qū)"),
yaxis=dict(title="不同地區(qū)的任務(wù)完成量"),
# 【步驟二】:給第二個(gè)y軸,添加標(biāo)題,指定第二個(gè)y軸,在右側(cè)。
yaxis2=dict(title="不同地區(qū)的任務(wù)完成率",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()
結(jié)果如下:

6、繪制多子圖:一個(gè)畫布上繪制多個(gè)圖形
1)相關(guān)庫(kù)和方法介紹
1、繪制多個(gè)子圖,需要先導(dǎo)入tools庫(kù)。from plotly import tools
2、tools.make_subplots(rows= ,cols=)用于指定繪圖布局,rows和cols表示將畫布布局成幾行幾列。
3、fig.append_trace()將每個(gè)圖形軌跡trace,繪制在不同的位置上。
2)分別繪制不同地區(qū)的“任務(wù)完成量”和“任務(wù)完成率”情況
# 步驟一:導(dǎo)入相關(guān)庫(kù)
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="不同地區(qū)的任務(wù)完成量")
trace1 = go.Scatter(x=x,y=y2,
mode="lines",
name="不同地區(qū)的任務(wù)完成率",
line=dict(width=2,color="red"))
# 步驟四:將第一個(gè)軌跡,添加到第1行的第1個(gè)位置
# 將第二個(gè)軌跡,添加到第2行的第1個(gè)位置
fig.append_trace(trace0,1,1)
fig.append_trace(trace1,2,1)
# 步驟四:根據(jù)自己的需求,給圖形添加標(biāo)題。height、width參數(shù)用于指定圖形的寬和高
fig.update_layout(title="不同地區(qū)的任務(wù)量與完成量",height=800,width=800)
# 步驟五:展示圖形
fig.show()
結(jié)果如下:

到此這篇關(guān)于python Plotly繪圖工具的簡(jiǎn)單使用的文章就介紹到這了,更多相關(guān)python Plotly繪圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
anconda的pip下載包出現(xiàn)的問(wèn)題解決
本文主要介紹了anconda的pip下載包出現(xiàn)的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Python實(shí)戰(zhàn)之夢(mèng)幻鋼琴小游戲的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言編寫一款界面化的(Tkinter)電子鋼琴小程序,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-02-02
windows 10 設(shè)定計(jì)劃任務(wù)自動(dòng)執(zhí)行 python 腳本的方法
這篇文章主要介紹了windows 10 設(shè)定計(jì)劃任務(wù)自動(dòng)執(zhí)行 python 腳本的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
Python中reset_index()函數(shù)的使用
本文主要介紹了Python中reset_index()函數(shù)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
對(duì)TensorFlow中的variables_to_restore函數(shù)詳解
今天小編就為大家分享一篇對(duì)TensorFlow中的variables_to_restore函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
python?include標(biāo)簽的使用方式及說(shuō)明
這篇文章主要介紹了python?include標(biāo)簽的使用方式及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
python數(shù)據(jù)庫(kù)操作常用功能使用詳解(創(chuàng)建表/插入數(shù)據(jù)/獲取數(shù)據(jù))
這篇文章主要介紹了python數(shù)據(jù)庫(kù)操作常用功能使用方法:獲取mysql版本、創(chuàng)建表、插入數(shù)據(jù)、slect獲取數(shù)據(jù)等,下面看示例吧2013-12-12

