說明:本文為博主原創文章,未經博主允許不得轉載。
如果代碼有不懂的,歡迎與我探討!
郵箱:1103540209@qq.com
github地址:https://github.com/wstchhwp
文章目錄
- 1. Matplotlib 基本概念
- 2. Matplotlib三層結構
- 容器層
- 輔助顯示層
- 圖像層
- 總結
- 3.plt的基本用法
- 3.1 Figure對象
- 3.2 plot的使用
- 3.3 如何在同一個figure內部設置多個圖片
- 3.4 如何調整subplot的間距
- 4.參考
可視化是在整個數據挖掘的關鍵輔助工具,可以清晰的理解數據,從而調整我們的分析方法。
1. Matplotlib 基本概念
Matplotlib是python的一個數據可視化工具庫,專門用于開發2D圖表(包括3D圖表), 操作簡單。
2. Matplotlib三層結構
容器層
容器層由Canvas、Figure、Axes三部分組成。
Canvas位于最底層的系統層,充當畫板,即放置Figure的工具。
Figure是Canvas上方的第一層,也是需要用戶來操作的應用層的第一層,在繪圖的過程中充當畫布的角色。
Axes是應用層的第二層,在繪圖的過程中相當于畫布上的繪圖區的角色。
Figure:指整個圖形(可以通過plt.figure()設置畫布的大小和分辨率等)
Axes(坐標系):數據的繪圖區域
Axis(坐標軸):坐標系中的一條軸,包含大小限制、刻度和刻度標簽
特點為:
一個figure(畫布)可以包含多個axes(坐標系/繪圖區),但是一個axes只能屬于一個figure。
一個axes(坐標系/繪圖區)可以包含多個axis(坐標軸),包含兩個即為2d坐標系,3個即為3d坐標
輔助顯示層
輔助顯示層為Axes(繪圖區)內的除了根據數據繪制出的圖像以外的內容,主要包括Axes外觀(facecolor)、邊框線(spines)、坐標軸(axis)、坐標軸名稱(axis label)、坐標軸刻度(tick)、坐標軸刻度標簽(tick label)、網格線(grid)、圖例(legend)、標題(title)等內容。
圖像層
圖像層指Axes內通過plot、scatter、bar、histogram、pie等函數根據數據繪制出的圖像
總結
Canvas(畫板)位于最底層,用戶一般接觸不到;
Figure(畫布)建立在Canvas之上;
Axes(繪圖區)建立在Figure之上;
坐標軸(axis)、圖例(legend)等輔助顯示層以及圖像層都是建立在Axes之上。
3.plt的基本用法
3.1 Figure對象
matplotlib的圖像都位于Figure對象中,我們可以調用plt.figure()來創建Figure對象。
fig = plt.figure()
figure有一個比較重要的參數figsize,它衡量圖片的大小和縱橫比(單位為inch):
fig = plt.figure(figsize=(4,5))
比如,以上代碼代表建立一個寬度為4inch,高度為5inch的figure對象。
3.2 plot的使用
有了figure對象之后,就可以利用plot函數作圖了。注意不可以使用figure對象來調用plot,按照慣例我們使用plt.plot()來作圖,而圖像自動分配到上一個建立的figure中。
3.3 如何在同一個figure內部設置多個圖片
figure對象調用add_subplot函數來添加figure內部不同位置的圖片,add_subplot函數的3個參數分別為figure內部縱向和橫向的字圖片個數,以及當前創建的子圖片是第幾個,例如:
fig
=
plt
.
figure
(
)
# add_subplot返回的是一個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內部作圖,我們只需要用對應的subplot對象調用plot即可:
sp1
.
plot
(
np
.
random
.
randn
(
50
)
,
'k--'
,
color
=
'r'
)
fig
3.4 如何調整subplot的間距
有時候各subplot的間距會過大或者過小,這時候與我們需要使用subplots_adjust函數來調整間距:
fig.tight_layout() # 調整整體空白
plt.subplots_adjust(wspace =0, hspace =0) # 調整子圖間距
plt
.
subplots_adjust
(
left
=
None
,
bottom
=
None
,
right
=
None
,
top
=
None
,
wspace
=
None
,
hspace
=
None
)
參數詳解:
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
# 調整fig內部的subplot長寬間距都為0.5
fig
.
subplots_adjust
(
wspace
=
0.5
,
hspace
=
0.5
)
fig
4.參考
https://blog.csdn.net/xiaomeng29/article/details/90769347
https://blog.csdn.net/m0_37362454/article/details/82796793
https://blog.csdn.net/Refrain__WG/article/details/82747254
https://blog.csdn.net/jlb1024/article
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
