溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python數(shù)據(jù)可視化中常用的繪圖庫

發(fā)布時間:2020-10-26 14:43:43 來源:億速云 閱讀:251 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章運用簡單易懂的例子給大家介紹Python數(shù)據(jù)可視化中常用的繪圖庫,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1. matplotlib繪圖原理

關(guān)于matplotlib更詳細的繪圖說明,大家可以參考下面這篇文章,相信你看了以后一定學(xué)得會。

matplotlib繪圖原理:http://suo.im/678FCo

1)繪圖原理說明

通過我自己的學(xué)習(xí)和理解,我將matplotlib繪圖原理高度總結(jié)為如下幾步:

導(dǎo)庫;創(chuàng)建figure畫布對象;獲取對應(yīng)位置的axes坐標系對象;調(diào)用axes對象,進行對應(yīng)位置的圖形繪制;顯示圖形;

2)案例說明

# 1.導(dǎo)入相關(guān)庫
import matplotlib as mpl
import matplotlib.pyplot as plt
# 2.創(chuàng)建figure畫布對象
figure = plt.figure()
# 3.獲取對應(yīng)位置的axes坐標系對象
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,2)
# 4.調(diào)用axes對象,進行對應(yīng)位置的圖形繪制
axes1.plot([1,3,5,7],[4,9,6,8])
axes2.plot([1,2,4,5],[8,4,6,2])
# 5.顯示圖形
figure.show()

結(jié)果如下:

Python數(shù)據(jù)可視化中常用的繪圖庫

2. seaborn繪圖原理

在這四個繪圖庫里面,只有matplotlib和seaborn存在一定的聯(lián)系,其余繪圖庫之間都沒有任何聯(lián)系,就連繪圖原理也都是不一樣的。

seaborn是matplotlib的更高級的封裝。因此學(xué)習(xí)seaborn之前,首先要知道m(xù)atplotlib的繪圖原理。由于seaborn是matplotlib的更高級的封裝,對于matplotlib的那些調(diào)優(yōu)參數(shù)設(shè)置,也都可以在使用seaborn繪制圖形之后使用。

我們知道,使用matplotlib繪圖,需要調(diào)節(jié)大量的繪圖參數(shù),需要記憶的東西很多。而seaborn基于matplotlib做了更高級的封裝,使得繪圖更加容易,它不需要了解大量的底層參數(shù),就可以繪制出很多比較精致的圖形。不僅如此,seaborn還兼容numpy、pandas數(shù)據(jù)結(jié)構(gòu),在組織數(shù)據(jù)上起了很大作用,從而更大程度上的幫助我們完成數(shù)據(jù)可視化。

由于seaborn的繪圖原理,和matplotlib的繪圖原理一致,這里也就不詳細介紹了,大家可以參考上面matplotlib的繪圖原理,來學(xué)習(xí)seaborn究竟如何繪圖,這里還是提供一個網(wǎng)址給大家。

seaborn繪圖原理:http://suo.im/5D3VPX

1)案例說明

# 1.導(dǎo)入相關(guān)庫
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.read_excel("data.xlsx",sheet_name="數(shù)據(jù)源")

sns.set_style("dark")
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
# 注意:estimator表示對分組后的銷售數(shù)量求和。默認是求均值。
sns.barplot(x="品牌",y="銷售數(shù)量",data=df,color="steelblue",orient="v",estimator=sum)
plt.show()

結(jié)果如下:

Python數(shù)據(jù)可視化中常用的繪圖庫

注意:可以看到在上述的繪圖代碼中,你應(yīng)該有這樣一個感受,圖中既有matplotlib的繪圖代碼,也有seaborn的繪圖代碼。其實就是這樣的,我們就是按照matplobt的繪圖原理進行圖形繪制,只是有些地方改成seaborn特有的代碼即可,剩下的調(diào)整格式,都可以使用matplotlib中的方法進行調(diào)整

3. plotly繪圖原理

首先在介紹這個圖的繪圖原理之前,我們先簡單介紹一下plotly這個繪圖庫。

  • plotly是一個基于javascript的繪圖庫,plotly繪圖種類豐富,效果美觀;
  • 易于保存與分享plotly的繪圖結(jié)果,并且可以與Web無縫集成;
  • ploty默認的繪圖結(jié)果,是一個HTML網(wǎng)頁文件,通過瀏覽器可以直接查看;

它的繪圖原理和matplotlib、seaborn沒有任何關(guān)系,你需要單獨去學(xué)習(xí)它。同樣我還是提供了一個網(wǎng)址給你,讓你更詳細的學(xué)習(xí)plotly。

plotly繪圖原理:http://suo.im/5vxNTu

1)繪圖原理說明

通過我自己的學(xué)習(xí)和理解,我將plotly繪圖原理高度總結(jié)為如下幾步:

  • 繪制圖形軌跡,在ployly里面叫做trace,每一個軌跡是一個trace。
  • 將軌跡包裹成一個列表,形成一個“軌跡列表”。一個軌跡放在一個列表中,多個軌跡也是放在一個列表中。
  • 創(chuàng)建畫布的同時,并將上述的軌跡列表,傳入到Figure()中。
  • 使用Layout()添加其他的繪圖參數(shù),完善圖形。
  • 展示圖形。

2)案例說明

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

df = pd.read_excel("plot.xlsx")
# 1.繪制圖形軌跡,在ployly里面叫做`trace`,每一個軌跡是一個trace。
trace0 = go.Scatter(x=df["年份"],y=df["城鎮(zhèn)居民"],name="城鎮(zhèn)居民")
trace1 = go.Scatter(x=df["年份"],y=df["農(nóng)村居民"],name="農(nóng)村居民")
# 2.將軌跡包裹成一個列表,形成一個“軌跡列表”。一個軌跡放在一個列表中,多個軌跡也是放在一個列表中。
data = [trace0,trace1]
# 3.創(chuàng)建畫布的同時,并將上述的`軌跡列表`,傳入到`Figure()`中。
fig = go.Figure(data)
# 4.使用`Layout()`添加其他的繪圖參數(shù),完善圖形。
fig.update_layout(
  title="城鄉(xiāng)居民家庭人均收入",
  xaxis_title="年份",
  yaxis_title="人均收入(元)"
)
# 5.展示圖形。
fig.show()

結(jié)果如下:

Python數(shù)據(jù)可視化中常用的繪圖庫

4. pyecharts繪圖原理

Echarts是一個由百度開源的數(shù)據(jù)可視化工具,憑借著良好的交互性,精巧的圖表設(shè)計,得到了眾多開發(fā)者的認可。而python是一門富有表達力的語言,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上了數(shù)據(jù)可視化時,pyecharts誕生了。

pyecharts分為v0.5和v1兩個大版本,v0.5和v1兩個版本不兼容,v1是一個全新的版本,因此我們的學(xué)習(xí)盡量都是基于v1版本進行操作。

和plotly一樣,pyecharts的繪圖原理也是完全不同于matplotlib和seaborn,我們需要額外的去學(xué)習(xí)它們的繪圖原理,基于此,同樣提供一個網(wǎng)址給你,讓你更詳細的學(xué)習(xí)pyecharts。

pyecharts的繪圖原理:http://suo.im/5S1PF1

1)繪圖原理說明

通過我自己的學(xué)習(xí)和理解,我將plotly繪圖原理高度總結(jié)為如下幾步:

  • 選擇圖表類型;
  • 聲明圖形類并添加數(shù)據(jù);
  • 選擇全局變量;
  • 顯示及保存圖表;

2)案例說明

# 1.選擇圖表類型:我們使用的是線圖,就直接從charts模塊中導(dǎo)入Line這個模塊;
from pyecharts.charts import Line
import pyecharts.options as opts
import numpy as np

x = np.linspace(0,2 * np.pi,100)
y = np.sin(x)

(
 # 2.我們繪制的是Line線圖,就需要實例化這個圖形類,直接Line()即可;
 Line()
 # 3.添加數(shù)據(jù),分別給x,y軸添加數(shù)據(jù);
 .add_xaxis(xaxis_data=x)
 .add_yaxis(series_name="繪制線圖",y_axis=y,label_opts=opts.LabelOpts(is_show=False))
 .set_global_opts(title_opts=opts.TitleOpts(title="我是標題",subtitle="我是副標題",title_link="https://www.baidu.com/"),
         tooltip_opts=opts.TooltipOpts())
).render_notebook() # 4.render_notebook()用于顯示及保存圖表;

結(jié)果如下:

Python數(shù)據(jù)可視化中常用的繪圖庫

小結(jié)

通過上面的學(xué)習(xí),我相信肯定會讓大家對于這些庫的繪圖原理,一定會有一個新的認識。

其實其實不管是任何編程軟件的繪圖庫,都有它的繪圖原理。我們與其盲目的去繪制各種各樣的圖形,不如先搞清楚它們的套路后,再去進行繪圖庫的圖形練習(xí),這樣下去,我覺得大家會有一個很大的提高。

關(guān)于Python數(shù)據(jù)可視化中常用的繪圖庫就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI