目錄
一.Figure容器和子圖對象
Figure容器
子圖對象
Subplot
Axes
繪制雙y軸
刪除一個子圖對象
獲取一個子圖對象進行操作
二.Axis容器與多圖布局
Axis容器
Axis介紹
設置x軸和y軸label的位置
設置刻度上的刻度格式
設置刻度對象,刻度標簽對象,刻度線
多圖布局
調整子圖間距
自定義布局
Matplotlib所繪制的圖位於圖片(Figure)對象中,我們可以通過 plt.figure() 生成一個新的圖片:
from matplotlib import pyplot as plt
fig = plt.figure()
可以通過參數 figsize 來設置畫布的大小比例:
實例:
(1)plt.subplot(# 子圖位置 幾行幾列 第幾個) 創建一個或多個子圖對象;
(2)fig.add_subplot(# 子圖位置 幾行幾列 第幾個) 與上述方法效果一致,不同的是制定了figure;
實例:
設置子圖的參數時,除了使用 set 方法一起設置以外,還可通過單獨設置:
如下:
(1)fig.add_axes(# 原點坐標 原圖長度比例) 使用該方法創建子圖,與上述subplot有較大的不同,如下所示:
實例:
在沒有特殊要求的情況下,我們一般不使用這種方法創建子圖。
(1)twinx() 克隆一個共用的x軸對象;
實例:
(1)fig.delaxes()
實例:
使用 for 循環來對 fig 的 axes 進行遍歷操作;
實例:
Axis 代表的是 x 軸或者 y 軸的對象。包含 Tick(刻度)對象,TickLabel 刻度文本對象,以及 AxisLabel 坐標軸文本對象。axis 對象有一些方法可以操作刻度和文本等。
(1)ax1.xaxis.set_label_coords(x,y)
(2)ax1.yaxis.set_label_coords(x,y)
實例:
from matplotlib import ticker
formatter = ticker.FormatStrFormatter("自定義格式")
ax1.yaxis.set_major_formatter(formatter)
實例(使y軸刻度保留兩位小數):
方法:subplots()
import matplotlib.pyplot as plt
fig,axes = plt.subplots(2,2)
axes[0,0].plot([1,2],[1,2])
axes[0,1].plot([1,2],[1,2])
axes[1,0].plot([1,2],[1,2])
axes[1,1].plot([1,2],[1,2])
axes[0,0].set_xlabel("x-label")
axes[0,0].set_ylabel("y-label")
axes[0,0].set_title("title")
axes[0,1].set_xlabel("x-label")
axes[0,1].set_ylabel("y-label")
axes[0,1].set_title("title")
axes[1,0].set_xlabel("x-label")
axes[1,0].set_ylabel("y-label")
axes[1,0].set_title("title")
axes[1,1].set_xlabel("x-label")
axes[1,1].set_ylabel("y-label")
axes[1,1].set_title("title")
plt.show()
實例:
(1)fig.subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=None,hspace=None)
(2)使用上述方法:fig.tight_layout(h_pad=None,w_pad=None)
對於比較復雜的布局需要借助到 GridSpec對象,通過 fig.add_gridspec(2,2) 創建柵欄模式,在使用 fig.add_plot 添加子圖。
調整子圖比例時:fig.add_gridspec(2,2,width_ratios=width,height_ratios=height)