【发布时间】:2017-07-30 03:36:26
【问题描述】:
我正在使用 this answer 设置 3x3 网格来绘制我的数据。我专门选择了这种方法,因为它适用于tight_layout()。
但是,我正在阅读 AxesGrid 工具包上的文档,但我不知道如何将颜色条仅放在最右边的图上。
到目前为止,这是我所拥有的:
from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1 import ImageGrid
letters='abcdefghi'
f1=plt.figure(figsize=(9,9))
grid = ImageGrid(f1, 111,
nrows_ncols=(3,3),
axes_pad=0.05,
share_all=True,
cbar_location="right",
cbar_mode="each",
cbar_size="2%",
cbar_pad=0.15)
A=np.random.rand(10,10)
for i,axis in enumerate(grid):
im=axis.imshow(A)
axis.annotate(s=letters[i], xy=(0.1, .85), xycoords='axes fraction', bbox=dict(boxstyle="square", fc="w", alpha=0.9))
if i in (2,5,8):
axis.cax.colorbar(im)
f1.tight_layout()
f1.savefig('example.png')
这会产生这个数字:
这显然是不对的,因为每个子图都有自己的颜色条,即使它没有着色。我希望只有 c、f 和 i 的颜色条应该不同。这可能吗?
【问题讨论】:
标签: python matplotlib colorbar