溫馨提示×

溫馨提示×

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

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

python數(shù)據(jù)可視化之 Matplotlib

發(fā)布時(shí)間:2020-08-10 19:56:18 來源:網(wǎng)絡(luò) 閱讀:338 作者:ckllf 欄目:編程語言

  可視化是在整個(gè)數(shù)據(jù)挖掘的關(guān)鍵輔助工具,可以清晰的理解數(shù)據(jù),從而調(diào)整我們的分析方法。

  1. Matplotlib 基本概念

  Matplotlib是python的一個(gè)數(shù)據(jù)可視化工具庫,專門用于開發(fā)2D圖表(包括3D圖表), 操作簡單。

  2. Matplotlib三層結(jié)構(gòu)

  容器層

  容器層由Canvas、Figure、Axes三部分組成。

  Canvas位于最底層的系統(tǒng)層,充當(dāng)畫板,即放置Figure的工具。

  Figure是Canvas上方的第一層,也是需要用戶來操作的應(yīng)用層的第一層,在繪圖的過程中充當(dāng)畫布的角色。

  Axes是應(yīng)用層的第二層,在繪圖的過程中相當(dāng)于畫布上的繪圖區(qū)的角色。

  Figure:指整個(gè)圖形(可以通過plt.figure()設(shè)置畫布的大小和分辨率等)

  Axes(坐標(biāo)系):數(shù)據(jù)的繪圖區(qū)域

  Axis(坐標(biāo)軸):坐標(biāo)系中的一條軸,包含大小限制、刻度和刻度標(biāo)簽

  特點(diǎn)為:

  一個(gè)figure(畫布)可以包含多個(gè)axes(坐標(biāo)系/繪圖區(qū)),但是一個(gè)axes只能屬于一個(gè)figure。

  一個(gè)axes(坐標(biāo)系/繪圖區(qū))可以包含多個(gè)axis(坐標(biāo)軸),包含兩個(gè)即為2d坐標(biāo)系,3個(gè)即為3d坐標(biāo)

  輔助顯示層

  輔助顯示層為Axes(繪圖區(qū))內(nèi)的除了根據(jù)數(shù)據(jù)繪制出的圖像以外的內(nèi)容,主要包括Axes外觀(facecolor)、邊框線(spines)、坐標(biāo)軸(axis)、坐標(biāo)軸名稱(axis label)、坐標(biāo)軸刻度(tick)、坐標(biāo)軸刻度標(biāo)簽(tick label)、網(wǎng)格線(grid)、圖例(legend)、標(biāo)題(title)等內(nèi)容。

  圖像層

  圖像層指Axes內(nèi)通過plot、scatter、bar、histogram、pie等函數(shù)根據(jù)數(shù)據(jù)繪制出的圖像

  總結(jié)

  Canvas(畫板)位于最底層,用戶一般接觸不到;

  Figure(畫布)建立在Canvas之上;

  Axes(繪圖區(qū))建立在Figure之上;

  坐標(biāo)軸(axis)、圖例(legend)等輔助顯示層以及圖像層都是建立在Axes之上。

  3.plt的基本用法

  3.1 Figure對象

  matplotlib的圖像都位于Figure對象中,我們可以調(diào)用plt.figure()來創(chuàng)建Figure對象。

  fig = plt.figure()

  figure有一個(gè)比較重要的參數(shù)figsize,它衡量圖片的大小和縱橫比(單位為inch):

  fig = plt.figure(figsize=(4,5))

  比如,以上代碼代表建立一個(gè)寬度為4inch,高度為5inch的figure對象。

  3.2 plot的使用

  有了figure對象之后,就可以利用plot函數(shù)作圖了。注意不可以使用figure對象來調(diào)用plot,按照慣例我們使用plt.plot()來作圖,而圖像自動(dòng)分配到上一個(gè)建立的figure中。

  3.3 如何在同一個(gè)figure內(nèi)部設(shè)置多個(gè)圖片

  figure對象調(diào)用add_subplot函數(shù)來添加figure內(nèi)部不同位置的圖片,add_subplot函數(shù)的3個(gè)參數(shù)分別為figure內(nèi)部縱向和橫向的字圖片個(gè)數(shù),以及當(dāng)前創(chuàng)建的子圖片是第幾個(gè),例如:無錫看婦科的醫(yī)院 http://www.ytsgfk120.com/

  fig = plt.figure()

  # add_subplot返回的是一個(gè)subplot對象

  sp1 = fig.add_subplot(2,3,1)

  sp2 = fig.add_subplot(2,3,2)

  sp3 = fig.add_subplot(2,3,3)

  sp4 = fig.add_subplot(2,3,4)

  fig

  如果要在subplot內(nèi)部作圖,我們只需要用對應(yīng)的subplot對象調(diào)用plot即可:

  sp1.plot(np.random.randn(50), 'k--', color='r')

  fig

  3.4 如何調(diào)整subplot的間距

  有時(shí)候各subplot的間距會(huì)過大或者過小,這時(shí)候與我們需要使用subplots_adjust函數(shù)來調(diào)整間距:

  fig.tight_layout() # 調(diào)整整體空白

  plt.subplots_adjust(wspace =0, hspace =0) # 調(diào)整子圖間距

  plt.subplots_adjust(left=None, bottom=None, right=None, top=None,wspace=None,hspace=None)

  參數(shù)詳解:

  left = 0.125 # the left side of the subplots of the figure

  right = 0.9 # the right side of the subplots of the figure

  bottom = 0.1 # the bottom of the subplots of the figure

  top = 0.9 # the top of the subplots of the figure

  wspace = 0.2 # the amount of width reserved for blank space between subplots,

  # expressed as a fraction of the average axis width

  hspace = 0.2 # the amount of height reserved for white space between subplots,

  # expressed as a fraction of the average axis height

  # 調(diào)整fig內(nèi)部的subplot長寬間距都為0.5

  fig.subplots_adjust(wspace = 0.5, hspace = 0.5)

  fig


向AI問一下細(xì)節(jié)

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

AI