Python Matplotlib add_subplot 和 subplots_adjust詳解及程式碼詳細說明 配圖片說明
Table of Contents
add_subplot(self, *args, **kwargs)新增子圖
Matplotlib
Matplotlib是一個Python庫,用於通過使用Python指令碼建立二維圖形和圖表。
它有一個名為pyplot的模組,通過提供控制線條樣式,字型屬性,格式化軸等功能,使得繪圖變得容易。
支援各種各樣的圖形和圖形 - 即直方圖,條形圖,功率譜,誤差圖等
與NumPy一起使用,為MatLab提供了一個有效的開源替代方案。
也可以用於像PyQt和wxPython這樣的圖形工具包。
以上介紹選自https://www.yiibai.com/python_data_science/python_matplotlib.html
通常,通過新增以下語句將包匯入到Python指令碼中
import matplotlib.pyplot as plt
add_subplot(self, *args, **kwargs)新增子圖
說明、引數、返回值
Add an Axes to the figure as part of a subplot arrangement.
作為子圖佈置的一部分,將座標軸新增到圖中。
Call signatures:如何呼叫:
add_subplot(nrows, ncols, index, **kwargs)
add_subplot(pos, **kwargs)
add_subplot(ax)
方法說明位於:
C:\anaconda3\Lib\site-packages\matplotlib\figure.py模組下figure類方法 add_subplot(self, *args, **kwargs)
引數
Parameters
----------
*args
Either a 3-digit integer or three separate integers
describing the position of the subplot. If the three
integers are *nrows*, *ncols*, and *index* in order, the
subplot will take the *index* position on a grid with *nrows*
rows and *ncols* columns. *index* starts at 1 in the upper left
corner and increases to the right.
*pos* is a three digit integer, where the first digit is the
number of rows, the second the number of columns, and the third
the index of the subplot. i.e. fig.add_subplot(235) is the same as
fig.add_subplot(2, 3, 5). Note that all integers must be less than
10 for this form to work.
筆者翻譯:
引數
----------
* ARGS
3位整數或3個單獨的整數來描述子圖的位置。 如果三個
整數是* nrows *,* ncols *和* index *的順序,
子圖將採用 nrows * ncols 的網格上的* index *位置。
* index *從左上角的1開始,並向右增加。
* pos *是一個三位整數,其中第一個數字是
行數,第二個數字是列數和第三個數字是
子圖的索引。 即fig.add_subplot(235)與fig.add_subplot(2,3,5)相同。
請注意,希望這個格式正確工作,所有整數必須小於10。
舉個栗子,如果nrows = 3,ncols = 2,那麼這個網格(grid)大小為3*2,即總共有6個格子。
Index從左上角的1開始(不是零),依次向右增加。可以參考如下表格:
表格中的數字代表index,以下兩句程式碼是等效的
add_subplot(3, 2, 1) # 推薦此種寫法
add_subplot(321)
(3,2,1) |
(3,2,2) |
(3,2,3) |
(3,2,4) |
(3,2,5) |
(3,2,6) |
projection預設為rectilinear(矩形圖)
返回值
Returns
-------
axes : an `.axes.SubplotBase` subclass of `~.axes.Axes` (or a subclass of `~.axes.Axes`)
The axes of the subplot. The returned axes base class depends on
the projection used. It is `~.axes.Axes` if rectilinear projection
are used and `.projections.polar.PolarAxes` if polar projection
are used. The returned axes is then a subplot subclass of the
base class.
返回值
-------
axes:`~.axes.Axes`的子類`.axes.SubplotBase`(或`~.axes.Axes`的子類)
子圖的座標軸。 返回的軸基類取決於
使用的投影。 如果是直線投影,它是`~.axes.Axes`;
如果投影為polar則返回`.projections.polar.PolarAxes` 。
然後返回的軸是基類的子圖子類。
程式碼例項
以下程式碼出自add_subplot的說明,我改了個row的引數,加了點東西,方便大家看效果
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
fig=plt.figure('subplot demo') # 影象標題為'subplot demo',否則預設為'Figure 1'
# 接下來是在一個3行*2列的網格里新增子圖
# row = 3, col = 2,該網格可以擺放六張子圖index total為6
# fig.add_subplot(221) # row = 3, col = 2, index = 1
# equivalent but more general【與上面一行等價,但是這種更普遍】
ax1=fig.add_subplot(3, 2, 1) # row = 3, col = 2, index = 1
# add a subplot with no frame
ax2=fig.add_subplot(322, frameon=False) # row = 3, col = 2, index = 2
# add a polar subplot
fig.add_subplot(323, projection='polar') # row = 3, col = 2, index = 3
# add a red subplot that share the x-axis with ax1
fig.add_subplot(324, sharex=ax1, facecolor='red') # row = 3, col = 2, index = 4
# add a polar subplot
fig.add_subplot(325, projection='lambert') # row = 3, col = 2, index = 5
# add a red subplot, mollweide 即是橢圓ellipse
fig.add_subplot(326, projection='mollweide') # row = 3, col = 2, index = 6
#delete ax2 from the figure
fig.delaxes(ax2)
#add ax2 to the figure again
fig.add_subplot(ax2)
plt.show() # 顯示影象
效果圖:
帶括號的紫色文字是我後期加上去的,為了說明各個座標軸的index位置
更多資訊請參考
subplots_adjust
說明、引數
Adjusting the spacing of margins and subplots調整邊距和子圖的間距
subplots_adjust(self, left=None, bottom=None, right=None, top=None,
wspace=None, hspace=None)
Tune the subplot layout.調整子圖佈局。
The parameter meanings (and suggested defaults) are:引數含義(和建議的預設值)是:
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 space between subplots,
# expressed as a fraction of the average axis width
#為子圖之間的空間保留的寬度,平均軸寬的一部分
hspace = 0.2 # the amount of height reserved for space between subplots,
# expressed as a fraction of the average axis height
#為子圖之間的空間保留的高度,平均軸高度的一部分
加了這個語句,子圖會稍變小,因為空間也佔用座標軸的一部分
fig.subplots_adjust(wspace=0.5,hspace=0.5)
對比效果圖:
右圖是加加了subplots_adjust的
更多細節及程式碼例項可參考:
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplots_adjust.html
在子圖座標軸ax4中畫出sin(x)的曲線
新增以下程式碼
# add a red subplot that share the x-axis with ax1
ax4 = fig.add_subplot(324, sharex=ax1, facecolor='red') # row = 3, col = 2, index = 4
# 在座標軸ax4中新增畫曲線圖y = sin(x)
# Compute the x and y coordinates for points on a sine curve
x = np.arange(0, 3 * np.pi, 0.1) # 建立一個一維陣列,[0, 3*pi),步長為0.1
y = np.sin(x)
# Plot the points using matplotlib - y = sin(x)
ax4.plot(x, y)
plt.title("sin wave form") # 為該曲線取名為"sin wave form"
完整程式碼
效果圖如上圖
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure('subplot demo') # 影象標題為'subplot demo',否則預設為'Figure 1'
fig.subplots_adjust(wspace=0.5,hspace=0.5) # 調整邊距和子圖的間距
# 接下來是在一個3行*2列的網格里新增子圖
# row = 3, col = 2,該網格可以擺放六張子圖index total為6
# fig.add_subplot(221) # row = 3, col = 2, index = 1
# equivalent but more general【與上面一行等價,但是這種更普遍】
ax1 = fig.add_subplot(3, 2, 1) # row = 3, col = 2, index = 1
# add a subplot with no frame
ax2 = fig.add_subplot(322, frameon=False) # row = 3, col = 2, index = 2
# add a polar subplot
ax3 = fig.add_subplot(323, projection='polar') # row = 3, col = 2, index = 3
# add a red subplot that share the x-axis with ax1
ax4 = fig.add_subplot(324, sharex=ax1, facecolor='red') # row = 3, col = 2, index = 4
# 在座標軸ax4中新增畫曲線圖y = sin(x)
# Compute the x and y coordinates for points on a sine curve
x = np.arange(0, 3 * np.pi, 0.1) # 建立一個一維陣列,[0, 3*pi),步長為0.1
y = np.sin(x)
# Plot the points using matplotlib - y = sin(x)
ax4.plot(x, y)
plt.title("sin wave form") # 為該曲線取名為"sin wave form"
# add a polar subplot
ax5 = fig.add_subplot(325, projection='lambert') # row = 3, col = 2, index = 5
# add a red subplot, mollweide 即是橢圓ellipse
ax6 = fig.add_subplot(326, projection='mollweide') # row = 3, col = 2, index = 6
#delete ax2 from the figure
fig.delaxes(ax2)
#add ax2 to the figure again
fig.add_subplot(ax2)
plt.show() # 顯示影象
相關文章
- nginx 詳解 - 詳細配置說明Nginx
- nginx 詳解 – 詳細配置說明Nginx
- winscp操作說明,winscp操作說明的詳細解讀
- Linux sed命令詳細說明Linux
- Flask-Limit使用詳細說明FlaskMIT
- VNC安裝配置詳細說明VNC
- jpa 方法 命名規則 詳細說明
- 前端meta標籤內容定義及使用說明,meta詳細說明,meta標籤使用前端
- 寬頻路由器的詳細說明路由器
- JQuery Datatables Columns API 引數詳細說明jQueryAPI
- 網路交換機功能和原理的詳細說明
- linux安裝mysql的步驟和方法詳細說明LinuxMySql
- jquery datatables各引數詳細說明及簡單應用jQuery
- C++中map的使用詳解說明C++
- zblog模板文章釋出時間格式詳細說明
- Thread interrupt() 執行緒中斷的詳細說明thread執行緒
- 詳細說明搜尋引擎優化的過程優化
- CSS圖片上面新增文字說明CSS
- 正規表示式教程之操作符及說明詳解
- 一文詳細說明電感的意義和作用 S
- ImportError: Start directory is not importable: './test_case'怎麼解決?已附上詳細程式碼和專案結果說明。ImportError
- 瀏覽器快取詳解:expires,cache-control,last-modified,etag詳細說明瀏覽器快取AST
- ios加固,ios程式碼混淆,ios程式碼混淆工具, iOS原始碼混淆使用說明詳解iOS原始碼
- 重灌系統win7步驟和詳細教程 新手如何重灌win7圖解說明Win7圖解
- Solon 框架詳解(十一)- Solon Cloud 的配置說明框架Cloud
- 專利說明書及其說明書附圖
- 商品詳情 API 返回值說明API
- 阿里雲物聯網平臺專用工具詳細說明阿里
- Spring 對於事務上的應用的詳細說明Spring
- 深圳企業辦理等保備案流程詳細說明
- Matplotlib 詳細繪圖繪圖
- 圖片管理ImageRanger入門級使用說明Ranger
- PbootCMS模板呼叫幻燈片輪播圖及引數說明boot
- CH9434-MCU程式碼移植,晶片使用詳細說明(附Linux開發資料連結)晶片Linux
- 淺談Metaforce/Forsage/原力元宇宙佛薩奇2.0系統開發技術詳細及程式碼說明元宇宙
- lazada獲得lazada商品詳情 API呼叫說明 請示程式碼展示API
- 什麼是API介面?API介面的用途以及詳細示例說明。API
- 詳細說明百度競價排名價格計算公式公式