簡體   English   中英

如何更改 matplotlib 中僅一對子圖之間的間距

[英]How to change spacing between only 1 pair of subplots in matplotlib

我有一個帶有多個子圖的圖形,我使用 gridspec 設置了這些子圖:

        fig = Figure(figsize)
        gs = gridspec.GridSpec(4, 3, height_ratios=(1, 1,1,0.1))
        # Make axes on the subplots
        self.ax_main = self.fig.add_subplot(gs[1:3, :2]) 
        self.ax_x = self.fig.add_subplot(gs[0, :2],sharex=self.ax_main) 
        self.ax_y = self.fig.add_subplot(gs[1:3, 2],sharey=self.ax_main) 
        self.ax_cb = self.fig.add_subplot(gs[3, :2])

現在我想將 ax_cb 和 ax_main 之間的間距調整為一些手動設置的值。 這可能嗎? 如果是這樣,怎么辦?

將其稱為 ax_cb 聽起來就像您希望這是一個顏色條。 我不建議通過像這樣的額外 gridspec 列添加顏色條。 相當:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl

fig, axs = plt.subplot_mosaic([['x', '.'],  # '.' is empty
                               ['main', 'y']],
                              gridspec_kw={'height_ratios':[1, 2],
                                           'width_ratios':[2, 1]},
                              constrained_layout=True)

pc = axs['main'].pcolormesh(np.random.randn(20, 20))
fig.colorbar(pc, ax=axs['main'], location='bottom', pad=0.25)
plt.show()

pad參數以父軸為單位,在本例中為高度,您可以控制它與其他軸的距離。 但是,如果您使用 constrained_layout,您可能會發現沒有必要使用 pad。

在此處輸入圖像描述

您可以使用 gridspec 做同樣的事情,就像您在上面所做的那樣,但是 subplot_mosaic 通常更容易,而且人們似乎還不知道它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM