成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

快速入門 Matplotlib 繪圖庫

Hujiawei / 1103人閱讀

摘要:概述是使用開發(fā)的一個繪圖庫,是界進行數(shù)據(jù)可視化的首選庫??梢酝ㄟ^圖形示例來快速瀏覽所有支持的圖形。最后,調(diào)用把繪制好的圖形顯示出來。對應于三個參數(shù),表示行,表示列,表示位置。因此,表示在圖表中總共有個圖形,當前新增的圖形添加到位置。

概述

Matplotlib 是使用 Python 開發(fā)的一個繪圖庫,是 Python 界進行數(shù)據(jù)可視化的首選庫。
它提供了繪制圖形的各種工具,支持的圖形包括簡單的散點圖、曲線圖和直方圖,也包括復雜的三維圖形等,基本上做到了只有你想不到,沒有它做不到的地步。可以通過圖形示例來快速瀏覽所有支持的圖形。

Hello Matplotlib

從最簡單開始,繪制一條正玄曲線:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * np.pi, 50)
y = np.sin(x)
plt.plot(x, y)
plt.show()

運行后看到的結(jié)果類似為:

最開始時,引入相關模塊并重命名為 npplt ,其中 np 用來生成圖形數(shù)據(jù),plt 就是我們的繪圖模塊。

接著使用 np.linspace 生成了包含 50 個元素的數(shù)組作為 x 軸數(shù)據(jù),這些元素均勻的分布在 [0, 2π] 區(qū)間上。然后使用 np.sin 生成 x 對應的 y 軸數(shù)據(jù)。

再接著 plt.plot(x, y) 會自動創(chuàng)建一個圖形,并把 xy 繪制到圖形上。

最后,調(diào)用 plt.show() 把繪制好的圖形顯示出來。

注意,使用 plot() 方法時我們傳入了兩組數(shù)據(jù): xy,分別對應 x 軸和 y 軸。如果僅僅傳入一組數(shù)據(jù)的話,那么該數(shù)據(jù)就是 y 軸數(shù)據(jù), x 軸將會使用數(shù)組索引作為數(shù)據(jù)。例如 plt.plot(y) 的結(jié)果為:

圖表組成

從上面繪制的圖表中,可以看到它包含有 x 、y 軸刻度和曲線本身,但一個完整的圖表還可以展示更多的信息。

下圖展示了圖表的所有元素:

圖表是用戶所見的整張圖片,它管理著所有的坐標系,輔助元素(標題、圖例等)和畫布。只要知道畫布是真正繪制圖形的地方就可以了,對它不用了解太多。一張圖表可以有多個坐標系,因為它可以有多個圖形,一個坐標系只能屬于一張圖表。比如下圖,

它在一張圖表內(nèi)畫了四個圖形,每個圖形都有自己獨立的坐標系。二維坐標系包含兩條坐標軸,三維的話則是三條。

注意區(qū)分圖表和圖形,圖表是整張圖片,圖形是圖表的一部分。

另一種編程風格

在前面繪制正玄曲線的代碼中,可能并不太好理解圖表是何時、如何創(chuàng)建的。
下面換用另一種編程風格實現(xiàn)相同的正玄曲線圖形,這可以幫助我們理解更詳細的過程。

import numpy as np
import matplotlib.pyplot as plt

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

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(x, y)

plt.show()

可以看出,與之前的編碼相比,這里多了兩行代碼,而且使用 ax 代替 plot 來繪制圖形。
其中,fig = plt.figure() 顯式創(chuàng)建了一個圖表對象 fig,剛創(chuàng)建的圖表此時還是空的,什么內(nèi)容都沒有。
接著,ax = fig.add_subplot(1, 1, 1) 往圖表中新增了一個圖形對象,返回值 ax 為該圖形的坐標系。

add_subplot() 的參數(shù)指明了圖形數(shù)量和圖形位置。(1, 1, 1) 對應于 (R, C, P) 三個參數(shù),R 表示行,C 表示列,P 表示位置。因此,(1, 1, 1) 表示在圖表中總共有 1 x 1 個圖形,當前新增的圖形添加到位置 1 。
如果改為 fig.add_subplot(1, 2, 1) 則表示圖表擁有 1 行 2 列總共有 2 個圖形,最終展示結(jié)果為:

右邊的空白處為位置 2 的圖形位置,因為沒有往該位置添加圖形,所以顯示為空白。

(1, 1, 1) 也可以簡寫為三個數(shù)字組成的三位整數(shù),即 plt.add_subplot(111) 。

這種編程風格更符合程序員的編程習慣,所以推薦使用這種編程風格。

使用這種編程風格時,Matplotlib 的基本使用過程可總結(jié)如下:

應用實踐

利用上面學到的概念,下面繪制了一個更復雜些的圖表,里面使用了一些常用接口,最終效果如下:

代碼實現(xiàn):

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * np.pi, 50)

# 創(chuàng)建圖表
fig = plt.figure(figsize=(13, 9), dpi=90)
fig.suptitle("Figure Example")

# 繪制圖形 1
ax1 = fig.add_subplot(2, 2, 1)
ax1.set_title("Subplot 1")
ax1.plot(x, np.sin(x))
ax1.plot(x, np.sin(2 * x))

# 繪制圖形 2
ax2 = fig.add_subplot(2, 2, 2)
ax2.set_title("Subplot 2")
ax2.plot(x, np.sin(x), "r-o", label="Sin(x)")
ax2.plot(x, np.cos(x), color="green", linestyle="dashed", label="Cos(x)")
ax2.legend()
ax2.set_xlabel("Rads")
ax2.set_ylabel("Amplitude")

# 繪制圖形 3
ax3 = fig.add_subplot(2, 2, 3)
ax3.set_title("Subplot 3")
ax3.scatter(x, np.sin(x), marker="^")
ax3.scatter(x, np.cos(x + np.pi / 2), marker="x")
ax3.axhline(0, color="red", linestyle="dashed", linewidth=0.5)
ax3.axvline(np.pi, color="red", linestyle="dashed", linewidth=0.5)

# 繪制圖形 4
fig.add_subplot(2, 2, 4)
ax4 = fig.axes[3]
ax4.set_title("Subplot 4")
ax4.hist(np.random.randn(100), 10)

plt.show()

如果想對圖形做更多自定義的部分,可以在 Axes API 查詢相關接口。

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44664.html

相關文章

  • Python學習筆記:數(shù)據(jù)可視化(一)

    摘要:當數(shù)據(jù)發(fā)生變化時,這種演變過程隨之發(fā)生。是一種統(tǒng)計報告圖,由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布的情況。 showImg(https://segmentfault.com/img/bVbnkP1?w=751&h=558); python相關 基礎概念 數(shù)據(jù):離散的,客觀事實的數(shù)字表示 信息:處理后的數(shù)據(jù),為實際問題提供答案   - 為數(shù)據(jù)提供一種關系或一個關聯(lián)后,數(shù)據(jù)就成了信...

    Crazy_Coder 評論0 收藏0
  • Python--matplotlib繪圖可視化知識點整理

    摘要:本文作為學習過程中對一些常用知識點的整理,方便查找。所有繪圖操作僅對當前圖和當前坐標有效。表示把圖標分割成的網(wǎng)格。每個對象都是一個擁有自己坐標系統(tǒng)的繪圖區(qū)域。避免比例壓縮為橢圓數(shù)據(jù)可視化入門教程繪圖核心剖析如何調(diào)整子圖的大小 本文作為學習過程中對matplotlib一些常用知識點的整理,方便查找。 強烈推薦ipython無論你工作在什么項目上,IPython都是值得推薦的。利用ipyt...

    nifhlheimr 評論0 收藏0
  • 用Python學數(shù)學相關教程、開源包推薦與下載

    摘要:在上篇文章里,為大家推薦了一些數(shù)學學習的軟件和微積分線性代數(shù)概率統(tǒng)計的學習視頻,今天再推薦一些精心挑選的經(jīng)典教材,并為大家提供電子書的下載鏈接,和視頻搭配起來一起學習,效果會更好。我們要使用的以及等都包含在里面,無需額外下載。 在上篇文章里,為大家推薦了一些數(shù)學學習的軟件和微積分、線性代數(shù)、概率統(tǒng)計的學習視頻,今天再推薦一些精心挑選的經(jīng)典教材,并為大家提供電子書的下載鏈接,和視頻搭配起...

    wapeyang 評論0 收藏0
  • 【數(shù)據(jù)科學系統(tǒng)學習】Python # 數(shù)據(jù)分析基本操作[三] matplotlib

    摘要:有一些表示常見圖形的對象稱為塊,完整的集合位于。中的繪圖函數(shù)在中,有行標簽列標簽分組信息。密度圖通過計算可能會產(chǎn)生觀測數(shù)據(jù)的連續(xù)概率分布的估計而產(chǎn)生的。在探索式數(shù)據(jù)分析工作中,同時觀察一組變量的散布圖是很有意義的。 我們在上一篇介紹了 pandas,本篇介紹 matplotlib。 繪圖和可視化 一個用于創(chuàng)建出版質(zhì)量圖表的桌面繪圖包。 Matplotlib API入門 Figure ...

    BDEEFE 評論0 收藏0
  • 這里有8個流行的Python可視化工具包,你喜歡哪個?

    摘要:下面,作者介紹了八種在中實現(xiàn)的可視化工具包,其中有些包還能用在其它語言中。當提到這些可視化工具時,我想到三個詞探索數(shù)據(jù)分析。還可以選擇樣式,它模擬了像和等很流行的美化工具。有很多數(shù)據(jù)可視化的包,但沒法說哪個是最好的。 showImg(https://segmentfault.com/img/remote/1460000019029121); 作者:Aaron Frederick 喜歡用...

    testbird 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<