成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深度講解Python四大常用繪圖庫的“繪圖原理”

開發(fā) 后端
最近有不少粉絲來問我,Python繪圖庫太多,我知不知道學(xué)哪一個?即使我選擇了某一個繪圖庫后,我也不知道怎么學(xué),我不知道第一步做什么,也不知道接下來該怎么做,四個字一學(xué)就忘。

 為什么要寫這篇文章?

最近有不少粉絲來問我,Python繪圖庫太多,我知不知道學(xué)哪一個?即使我選擇了某一個繪圖庫后,我也不知道怎么學(xué),我不知道第一步做什么,也不知道接下來該怎么做,四個字一學(xué)就忘。

其實這也是我當(dāng)時很困擾的一個問題,我當(dāng)時在學(xué)習(xí)完numpy和pandas后,就開始了matplotlib的學(xué)習(xí)。我反正是非常崩潰的,每次就感覺繪圖代碼怎么這么多,繪圖邏輯完全一團糟,不知道如何動手。

后面隨著自己反復(fù)的學(xué)習(xí),我找到了學(xué)習(xí)Python繪圖庫的方法,那就是學(xué)習(xí)它的繪圖原理。正所謂:“知己知彼,百戰(zhàn)不殆”,學(xué)會了原理,剩下的就是熟練的問題了。

今天我們就用一篇文章,帶大家梳理matplotlib、seaborn、plotly、pyecharts的繪圖原理,讓大家學(xué)起來不再那么費勁!

 

1. matplotlib繪圖原理

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

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

1)繪圖原理說明

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

① 導(dǎo)庫;

② 創(chuàng)建figure畫布對象;

③ 獲取對應(yīng)位置的axes坐標(biāo)系對象;

④ 調(diào)用axes對象,進行對應(yīng)位置的圖形繪制;

⑤ 顯示圖形;

2)案例說明

 

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

結(jié)果如下:

 

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

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

1)案例說明

 

  1. # 1.導(dǎo)入相關(guān)庫 
  2. import seaborn as sns 
  3. import matplotlib.pyplot as plt 
  4.  
  5. df = pd.read_excel("data.xlsx",sheet_name="數(shù)據(jù)源"
  6.  
  7. sns.set_style("dark"
  8. plt.rcParams["font.sans-serif"] = ["SimHei"
  9. plt.rcParams["axes.unicode_minus"] = False 
  10. # 注意:estimator表示對分組后的銷售數(shù)量求和。默認(rèn)是求均值。 
  11. sns.barplot(x="品牌",y="銷售數(shù)量",data=df,color="steelblue",orient="v",estimator=sum
  12. plt.show() 

結(jié)果如下:

 

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

3. plotly繪圖原理

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

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

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

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

1)繪圖原理說明

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

① 繪制圖形軌跡,在ployly里面叫做trace,每一個軌跡是一個trace。

② 將軌跡包裹成一個列表,形成一個“軌跡列表”。一個軌跡放在一個列表中,多個軌跡也是放在一個列表中。

③ 創(chuàng)建畫布的同時,并將上述的軌跡列表,傳入到Figure()中。

④ 使用Layout()添加其他的繪圖參數(shù),完善圖形。

⑤ 展示圖形。

2)案例說明

 

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

結(jié)果如下:

 

4. pyecharts繪圖原理

Echarts是一個由百度開源的數(shù)據(jù)可視化工具,憑借著良好的交互性,精巧的圖表設(shè)計,得到了眾多開發(fā)者的認(rèn)可。而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)址給你,讓你更詳細(xì)的學(xué)習(xí)pyecharts。

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

1)繪圖原理說明

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

① 選擇圖表類型;

② 聲明圖形類并添加數(shù)據(jù);

③ 選擇全局變量;

④ 顯示及保存圖表;

2)案例說明

 

  1. # 1.選擇圖表類型:我們使用的是線圖,就直接從charts模塊中導(dǎo)入Line這個模塊; 
  2. from pyecharts.charts import Line 
  3. import pyecharts.options as opts 
  4. import numpy as np 
  5.  
  6. x = np.linspace(0,2 * np.pi,100) 
  7. y = np.sin(x) 
  8.  
  9.  # 2.我們繪制的是Line線圖,就需要實例化這個圖形類,直接Line()即可; 
  10.  Line() 
  11.  # 3.添加數(shù)據(jù),分別給x,y軸添加數(shù)據(jù); 
  12.  .add_xaxis(xaxis_data=x) 
  13.  .add_yaxis(series_name="繪制線圖",y_axis=y,label_opts=opts.LabelOpts(is_show=False)) 
  14.  .set_global_opts(title_opts=opts.TitleOpts(title="我是標(biāo)題",subtitle="我是副標(biāo)題",title_link="https://www.baidu.com/"), 
  15.                   tooltip_opts=opts.TooltipOpts()) 
  16. ).render_notebook() # 4.render_notebook()用于顯示及保存圖表; 

結(jié)果如下:

 

小結(jié)

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

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

責(zé)任編輯:華軒 來源: 數(shù)據(jù)分析與統(tǒng)計學(xué)之美
相關(guān)推薦

2022-10-10 10:14:38

Python繪圖庫

2021-06-28 10:51:58

PyechartsPython繪圖庫

2021-11-26 09:41:50

繪圖工具軟件工具開發(fā)

2021-11-03 15:15:21

Go重構(gòu)技術(shù)

2010-09-15 13:35:25

SwingHibernateStruts

2012-04-25 09:52:05

Expression

2015-04-02 15:50:47

數(shù)據(jù)倉庫數(shù)據(jù)挖掘

2011-03-21 09:01:49

CSS框架

2015-07-17 09:50:16

Carthage優(yōu)劣比較

2024-05-28 11:47:59

2021-11-22 17:55:56

Python 開發(fā)編程語言

2012-11-16 11:11:06

深度影音Linux Deepi

2011-06-22 08:38:35

Java EE

2014-03-27 15:57:45

Android組件Activity

2016-03-30 11:51:55

2013-01-06 10:44:43

微軟Windows 8云計算

2012-05-29 09:23:23

HTML5移動應(yīng)用框架jQTouch

2020-09-22 15:22:04

物聯(lián)網(wǎng)智慧城市技術(shù)

2019-01-23 16:13:02

大數(shù)據(jù)數(shù)據(jù)處理數(shù)據(jù)挖掘

2021-04-08 11:20:24

零信任網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 黄色一级在线播放 | 免费一级大片 | 日韩成人在线视频 | 国产精品污污视频 | 精品一区二区三区日本 | 色视频网站在线观看 | 在线欧美视频 | 国产精品免费在线 | 91se在线| 一区二区三区在线看 | 欧美黄a | 日本福利在线 | 精品九九久久 | 欧美日韩国产免费 | 夜夜精品浪潮av一区二区三区 | 国产91在线观看 | 欧美在线视频一区二区 | 国产极品粉嫩美女呻吟在线看人 | 久久精品国产一区 | 久久福利电影 | 国产婷婷综合 | 91精品www | 久久国产精品-久久精品 | 日韩一区二区三区精品 | pacopacomama在线 | 国产在线a| 久久精品国产久精国产 | 亚洲国产一区二区三区在线观看 | 国产精品178页 | 色网站视频 | 欧美一区二区三区在线看 | 精品熟人一区二区三区四区 | 日韩在线视频免费观看 | 欧美日韩黄| 99tv| www视频在线观看 | 亚洲一区二区三区四区视频 | 日韩中文一区二区三区 | 日日骚av | 国产91精品久久久久久久网曝门 | 欧美性视频在线播放 |