matplotlib中的plt.figure()、plt.subplot()、plt.subplots()、add_subplots以及add_axes的使用
【時間】2018.11.12
【題目】matplotlib中的plt.figure()、plt.subplot()、plt.subplots()、add_subplots以及add_axes的使用
概述
本文是博文https://blog.csdn.net/m0_37362454/article/details/81511427的簡要概括,具體內容請看原博文。主要講述了matplotlib中的plt.figure()、plt.subplot()、plt。subplots()\add_subplots以及add_axes的語法與使用方法。
一.plt.figure語()---在plt中繪製一張圖片
1.1figure語法說明
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
- num:影象編號或名稱,數字為編號 ,字串為名稱
- figsize:指定figure的寬和高,單位為英寸;
- dpi引數指定繪圖物件的解析度,即每英寸多少個畫素,預設值為80 1英寸等於2.5cm,A4紙是 21*30cm的紙張
- facecolor:背景顏色
- edgecolor:邊框顏色
- frameon:是否顯示邊框
1.2例子
【程式碼】:
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(4,3),facecolor='blue')
plt.show()
【執行結果】:
2.subplot--建立單個子圖
2.1.subplot語法
subplot(nrows,ncols,sharex,sharey,subplot_kw,**fig_kw)
2.2例子
【程式碼】
import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 100) plt.subplot(221) plt.plot(x, x) #作圖2 plt.subplot(222) plt.plot(x, -x) #作圖3 plt.subplot(223) plt.plot(x, x ** 2) plt.grid(color='r', linestyle='--', linewidth=1,alpha=0.3) #作圖4 plt.subplot(224) plt.plot(x, np.log(x)) plt.show()
【執行結果】
三.subplots--建立多個子圖
3.1subplots語法
subplots引數與subplots相似。兩者都可以規劃figure劃分為n個子圖,但每條subplot命令只會建立一個子圖,而一條subplots就可以將所有子圖建立好。
3.例子
【程式碼】
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
#劃分子圖
fig,axes=plt.subplots(2,2)
ax1=axes[0,0]
ax2=axes[0,1]
ax3=axes[1,0]
ax4=axes[1,1]
#作圖1
ax1.plot(x, x)
#作圖2
ax2.plot(x, -x)
#作圖3
ax3.plot(x, x ** 2)
ax3.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)
#作圖4
ax4.plot(x, np.log(x))
plt.show()
【執行結果】
四、add_subplot方法----給figure新增子圖
4.1語法
add_subplot()的作用與subplot一樣,用於新增子圖。具體如下:
#新建figure物件
fig=plt.figure()
#新建子圖1,(2,2,1)表示建立2x2子圖中的第一個
ax1=fig.add_subplot(2,2,1)
4.2 例子
【程式碼】
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
#新建figure物件
fig=plt.figure()
#新建子圖1
ax1=fig.add_subplot(2,2,1)
ax1.plot(x, x)
#新建子圖2
ax3=fig.add_subplot(2,2,2)
ax3.plot(x, x ** 2)
ax3.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)
#新建子圖3
ax4=fig.add_subplot(2,2,3)
ax4.plot(x, np.log(x))
plt.show()
【執行結果】
五、add_axes方法----新增子區域
5.1語法
add_axes為新增子區域,該區域可以坐落在figure內任意位置,且該區域可任意設定大小。具體如下:
fig.add_axes([left, bottom, width, height])
其中left, bottom表示左邊以及下邊的起始位置,width, heigh表示寬高佔原fig的比例。比如:
left, bottom, width, height = 0.1, 0.1, 0.8, 0.8 表示子區域從figure 10%的位置開始繪製, 寬高是figure的80%
5.2例子
【程式碼】:
import matplotlib.pyplot as plt
#新建figure
fig = plt.figure()
# 定義資料
x = [1, 2, 3, 4, 5, 6, 7]
y = [1, 3, 4, 2, 5, 8, 6]
#新建區域ax1
#figure的百分比,從figure 10%的位置開始繪製, 寬高是figure的80%
left, bottom, width, height = 0.1, 0.1, 0.8, 0.8
# 獲得繪製的控制代碼
ax1 = fig.add_axes([left, bottom, width, height])
ax1.plot(x, y, 'r')
ax1.set_title('area1')
#新增區域ax2,巢狀在ax1內
left, bottom, width, height = 0.2, 0.6, 0.25, 0.25
# 獲得繪製的控制代碼
ax2 = fig.add_axes([left, bottom, width, height])
ax2.plot(x,y, 'b')
ax2.set_title('area2')
plt.show()
【執行結果】