深度講解 Python 四大常用繪圖庫的「繪圖原理」

2021-01-08 CSDN

作者 | 黃偉呢

整理 | 楊碧玉

出品 | 數據分析與統計學之美(ID:gh_21c25c7e71d0)

頭圖 | CSDN 下載自視覺中國

為什麼要寫這篇文章?

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

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

後面隨著自己反覆的學習,我找到了學習 Python 繪圖庫的方法,那就是學習它的繪圖原理。正所謂:「知己知彼,百戰不殆」,學會了原理,剩下的就是熟練的問題了。

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

matplotlib繪圖原理

關於 matplotlib 更詳細的繪圖說明,大家可以參考下面這篇文章,相信你看了以後一定學得會。

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

繪圖原理說明

通過我自己的學習和理解,我將 matplotlib 繪圖原理高度總結為如下幾步:

① 導庫;② 創建 figure 畫布對象;③ 獲取對應位置的 axes 坐標系對象;④ 調用 axes 對象,進行對應位置的圖形繪製;⑤ 顯示圖形;案例說明

# 1.導入相關庫import matplotlib as mplimport matplotlib.pyplot as plt# 2.創建figure畫布對象figure = plt.figure()# 3.獲取對應位置的axes坐標系對象axes1 = figure.add_subplot(2,1,1)axes2 = figure.add_subplot(2,1,2)# 4.調用axes對象,進行對應位置的圖形繪製axes1.plot([1,3,5,7],[4,9,6,8])axes2.plot([1,2,4,5],[8,4,6,2])# 5.顯示圖形figure.show()

結果如下:

seaborn繪圖原理

在這四個繪圖庫裡面,只有 matplotlib 和 seaborn 存在一定的聯繫,其餘繪圖庫之間都沒有任何聯繫,就連繪圖原理也都是不一樣的。

seaborn 是 matplotlib 的更高級的封裝。因此學習 seaborn 之前,首先要知道 matplotlib 的繪圖原理。由於 seaborn 是 matplotlib 的更高級的封裝,對於 matplotlib 的那些調優參數設置,也都可以在使用 seaborn 繪製圖形之後使用。

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

由於 seaborn 的繪圖原理,和 matplotlib 的繪圖原理一致,這裡也就不詳細介紹了,大家可以參考上面 matplotlib 的繪圖原理,來學習 seaborn 究竟如何繪圖,這裡還是提供一個網址給大家。

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

案例說明

# 1.導入相關庫import seaborn as snsimport matplotlib.pyplot as pltdf = pd.read_excel("data.xlsx",sheet_name="數據源")sns.set_style("dark")plt.rcParams["font.sans-serif"] = ["SimHei"]plt.rcParams["axes.unicode_minus"] = False# 注意:estimator表示對分組後的銷售數量求和。默認是求均值。sns.barplot(x="品牌",y="銷售數量",data=df,color="steelblue",orient="v",estimator=sum)plt.show()

結果如下:

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

plotly繪圖原理

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

plotly 是一個基於 javascript 的繪圖庫, plotly 繪圖種類豐富,效果美觀;易於保存與分享 plotly 的繪圖結果,並且可以與 Web 無縫集成;ploty 默認的繪圖結果,是一個 HTML 網頁文件,通過瀏覽器可以直接查看;它的繪圖原理和 matplotlib 、 seaborn 沒有任何關係,你需要單獨去學習它。同樣我還是提供了一個網址給你,讓你更詳細的學習 plotly 。

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

繪圖原理說明

通過我自己的學習和理解,我將 plotly 繪圖原理高度總結為如下幾步:

① 繪製圖形軌跡,在 ployly 裡面叫做 trace ,每一個軌跡是一個 trace 。② 將軌跡包裹成一個列表,形成一個「軌跡列表」。一個軌跡放在一個列表中,多個軌跡也是放在一個列表中。③ 創建畫布的同時,並將上述的 軌跡列表 ,傳入到 Figure() 中。④ 使用 Layout() 添加其他的繪圖參數,完善圖形。⑤ 展示圖形。案例說明

import numpy as npimport pandas as pdimport plotly as pyimport plotly.graph_objs as goimport plotly.expression as pxfrom plotly import toolsdf = pd.read_excel("plot.xlsx")# 1.繪製圖形軌跡,在ployly裡面叫做`trace`,每一個軌跡是一個trace。trace0 = go.Scatter(x=df["年份"],y=df["城鎮居民"],name="城鎮居民")trace1 = go.Scatter(x=df["年份"],y=df["農村居民"],name="農村居民")# 2.將軌跡包裹成一個列表,形成一個「軌跡列表」。一個軌跡放在一個列表中,多個軌跡也是放在一個列表中。data = [trace0,trace1]# 3.創建畫布的同時,並將上述的`軌跡列表`,傳入到`Figure()`中。fig = go.Figure(data)# 4.使用`Layout()`添加其他的繪圖參數,完善圖形。fig.update_layout( title="城鄉居民家庭人均收入", xaxis_title="年份", yaxis_title="人均收入(元)")# 5.展示圖形。fig.show()

結果如下:

pyecharts繪圖原理

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

pyecharts 分為 v0.5 和 v1 兩個大版本, v0.5 和 v1 兩個版本不兼容,v1是一個全新的版本,因此我們的學習儘量都是基於 v1 版本進行操作。

和 plotly 一樣,pyecharts 的繪圖原理也是完全不同於 matplotlib 和 seaborn ,我們需要額外的去學習它們的繪圖原理,基於此,同樣提供一個網址給你,讓你更詳細的學習 pyecharts 。

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

繪圖原理說明

通過我自己的學習和理解,我將 plotly 繪圖原理高度總結為如下幾步:

① 選擇圖表類型;② 聲明圖形類並添加數據;③ 選擇全局變量;④ 顯示及保存圖表;案例說明

# 1.選擇圖表類型:我們使用的是線圖,就直接從charts模塊中導入Line這個模塊;from pyecharts.charts import Lineimport pyecharts.options as optsimport numpy as npx = np.linspace(0,2 * np.pi,100)y = np.sin(x)(# 2.我們繪製的是Line線圖,就需要實例化這個圖形類,直接Line()即可; Line()# 3.添加數據,分別給x,y軸添加數據; .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()用於顯示及保存圖表;

結果如下:

小結

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

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

相關焦點

  • 深度講解Python四大常用繪圖庫的「繪圖原理」
    matplotlib繪圖原理:http://suo.im/678FCo1)繪圖原理說明通過我自己的學習和理解,我將matplotlib繪圖原理高度總結為如下幾步:2)案例說明# 1.導入相關庫2. seaborn繪圖原理在這四個繪圖庫裡面,只有matplotlib和seaborn存在一定的聯繫,其餘繪圖庫之間都沒有任何聯繫,就連繪圖原理也都是不一樣的。
  • Python繪圖庫講解:4大常用庫你準備學哪個?
    後面隨著自己反覆的學習,我找到了學習Python繪圖庫的方法,那就是學習它的繪圖原理。正所謂:「知己知彼,百戰不殆」,學會了原理,剩下的就是熟練的問題了。在這四個繪圖庫裡面,只有matplotlib和seaborn存在一定的聯繫,其餘繪圖庫之間都沒有任何聯繫,就連繪圖原理也都是不一樣的。
  • 專題第18篇:Python 繪圖入門
    18篇,同時也進入到一個新的階段:Python繪圖篇。作為繪圖模塊的第一篇,與大家一起過過最基本的Python繪圖原理。掌握基本的繪圖原理很有必要,各個常用繪圖庫的原理基本都是相通的。所以了解它們後,使用庫裡的API函數將會更加得心應手,並且熟練其中一個庫後,便能迅速上手其他的繪圖庫。
  • matplotlib繪圖的核心原理講解
    作者:朱小五來自:凹凸數據(ID:alltodata)matplotlib是基於Python語言的開源項目,旨在為Python提供一個數據繪圖包。相信大家都用過它來數據可視化,之前我還分享過25個常用Matplotlib圖的Python代碼。
  • Python大數據綜合應用 :零基礎入門機器學習、深度學習算法原理與案例
    課程強調動手操作;內容以代碼落地為主,以理論講解為根,以公式推導為輔。共4天8節,講解機器學習和深度學習的模型理論和代碼實踐,梳理機器學習、深度學習、計算機視覺的技術框架,從根本上解決如何使用模型、優化模型的問題;每次課中,首先闡述算法理論和少量公式推導,然後使用真實數據做數據挖掘、機器學習、深度學習的數據分析、特徵選擇、調參和結果比較。
  • 機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用...
    原標題:機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用高級研修班通信和信息技術創新人才培養工程項目辦公室 通人辦〔2018〕 第5號 機器學習、深度學習算法原理與案例實踐暨Python
  • 「繪圖,讓科學生動起來」:Python-matplotlib繪圖(專題一)python環境搭建篇
    筆者寄語:各位好,從今天開始,「科學是什麼東東」將推出一個全新系列專題:採用時下最流行的python計算機設計語言,對其中的一個第三方繪圖庫,即matplotlib繪圖庫進行講解,並將其強大的繪圖與編程功能應用到數學函數,化學,地理,物理,教育等諸多領域。
  • python深度學習---帶你從入門到精通
    為輔助提高廣大科研工作者的使用python深度學習技術,我們舉辦了本次《python深度學習實踐技術及應用線上培訓》,利用大量的案例講解與實操練習讓大家更深入便捷的運用到工作學習中,也方便各個領域可以更好地交叉融合、擴展應用。
  • Python氣象繪圖教程(三)
    更多的關於基礎折線圖技巧前面已經講了很多關於折線圖的常用參數
  • pyecharts的繪圖原理詳解
    其實學習任何一門程式語言,最重要的就是學習它的原理。
  • 精選Python資料,免費下載
    連結: https://pan.baidu.com/s/1eSEmxBO網盤密碼請回複本公眾號「 python 」直接獲取Python手冊Python擴展資料熟練使用 Python,擅長自然語言理解、智能問答、深度學習、強化學習。曾在百度深度學習實驗室,研究花卉圖像識別,成果應用於百度App。
  • python的繪圖利器--海龜繪圖turtle
    作為你學習python的第一個程序,樹哥決定直接來一個實戰乾貨程序:利用海龜turtle來畫一個奧運五環。這樣就既可以理解庫的概念和使用,又可以理解程序的基本概念。這個語句是個固定格式,有這句話畫完圖,繪圖窗口還保留,如果沒有這句話,繪圖窗口就直接關閉了,所以初期都加上就好了。
  • 深度學習 「四大名著」 發布!完整 PDF 開放下載!!!
    我們都知道現在機器學習、深度學習的資料太多了,面對海量資源,往往陷入到「無從下手」的困惑出境。而且並非所有的書籍都是優質資源,浪費大量的時間是得不償失的。給大家推薦這幾本好書並做簡單介紹。2. 在下方公眾號(不是本號)後臺回復關鍵詞: 四大名著1. 《Deep Learning with Python》
  • python海歸繪圖法是怎麼回事?三秋道果說python第9講
    三秋道果說python先補理論:python程序保存與執行交互式解釋器是Python的亮點之一,它讓你能夠實時地測試解決方案以及嘗試使用Python。要了解隱藏在背後的工作原理,只需嘗試使用即可!再說強大的海龜繪圖法是怎麼回事編寫簡單示例時,print語句很有用,因為幾乎在任何地方都可使用它。如果你要嘗試提供更有趣的輸出,應考慮使用模塊turtle,它實現了海龜繪圖法。如果你正在運行IDLE,就可使用這個模塊,它讓你能夠繪製圖形(而不是列印文本)。通常,應避免導入模塊中所有的名稱,但嘗試使用海龜繪圖法時,這樣做可提供極大的方便。
  • 推薦: 一本「高顏值」的Python語言數據可視化圖書
    現在python語言越來越流行,尤其是在機器視覺、機器學習與深度學習等領域。但是數據可視化一直是其短板,特別相比較R語言而言。R語言以ggplot2包及其拓展包人性化的繪圖語法大受用戶的喜愛,特別是生物信息與醫學研究者。
  • 第350期博士生創新論壇 | Python信息處理與繪圖
    通過此次活動,希望參與的同學能夠入門Python,並且利用Python結合機器學習相關算法對於數據、文本信息進行處理,同時,也能夠進行繪圖,從而在論文寫作過程與實驗過程中能夠使用。本次活動是博創論壇中少有的技能提升營,我們將從學生角度出發,著重新手教學!
  • Python可視化庫解析
    1.matplotlibMatplotlib是一個Python 2維繪圖庫,已經成為python中公認的數據可視化工具,通過Matplotlib你可以很輕鬆地畫一些或簡單或複雜地圖形,幾行代碼即可生成線圖、直方圖、功率譜、條形圖、錯誤圖、散點圖等等。
  • python數據分析常用庫
    python被稱作膠水語言原因是具有非常非常多的庫可以使用。其中做數據分析時那些庫常用,怎麼用是本篇文字討論的內容。1、DataFrame(二維表)數據結構2、Series(一維數組)數據結構3、對數據的操作工具和方法如果是用Anaconda的話,默認已經包含Pandas,不需要另外安裝DataFrame讀取CSV構建對象,只需一行代碼df = pd.DataFrame(pd.read_csv("name.csv",header=1))這樣,df就相當於在內存中建立了跟csv內容一樣的二維表DataFrame的常用方法
  • python推薦 | 面向地學領域的Python庫匯總
    模式輸出處理•wrf-python:對於使用WRF模式的來說使用最為頻繁的模式輸出後處理工具之一。•salem:這個庫包含了數據處理和可視化幾乎所有功能,也提供了不少WRF模式後處理和前處理的函數。除此以外還是做掩膜的利器,之前的文章也有提到python繪圖 | salem一招解決所有可視化中的掩膜(Mask)問題。
  • 這幾個常用的python庫你需要知道
    python可以說是近幾年最火熱、最實用的、最容易上手的工具之一了。功能強大、應用廣泛,可以幫你搜集工作數據,還能幫你下載音樂,電影,於是就掀起了一波學習python的大潮,小編也毫不猶豫的加入了。但是對於向小編一樣的小白來說,剛開始學習還是有些困難的,需要首先了解python的一些基礎知識。所以小編就整理了一些常用的python庫,希望對正在學習python的小夥伴有所幫助。1.MatplotlibMatplotlib是一個用於創建二維圖和圖形的底層庫。藉由它的幫助,你可以構建各種不同的圖標,從直方圖和散點圖到費笛卡爾坐標圖。