我在一行中有一系列子图,所有子图共享相同的颜色条,我想使用plt.tight_layout().
然而,当天真地使用时,颜色条会把一切搞乱。幸运的是,我在 matplotlib 文档中找到了这一点,但它仅适用于一个子图。
我尝试使其适应多个子图,但分配颜色条的子图最终变得更小。
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np
plt.close('all')
arr = np.arange(100).reshape((10, 10))
fig, ax = plt.subplots(ncols=2, figsize=(8, 4))
im0 = ax[0].imshow(arr, interpolation="none")
im1 = ax[1].imshow(arr, interpolation='none')
divider = make_axes_locatable(plt.gca())
cax = divider.append_axes("right", "5%", pad="3%")
plt.colorbar(im0, cax=cax)
plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)
这就是结果的样子。
最新的 matplotlib (3.6) 为这种情况提供了一个新选项layout='compressed':
import matplotlib.pyplot as plt
import numpy as np
arr = np.arange(100).reshape((10, 10))
fig, ax = plt.subplots(ncols=2, figsize=(4, 2), layout='compressed')
im0 = ax[0].imshow(arr)
im1 = ax[1].imshow(arr)
plt.colorbar(im0, ax=ax)
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1157 次 |
| 最近记录: |