加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – matplotlib中匹配的图形大小,包括和不包含make_axes_l

发布时间:2020-12-20 13:36:36 所属栏目:Python 来源:网络整理
导读:我在2×2网格中有4个图形,但只希望右边的两个图形有条形(比例适用于行).我正在使用表格 divider = make_axes_locatable(ax)cax = divider.append_axes("right",size="5%",pad=0.05)plt.colorbar(im,cax=cax) 使颜色栏与这两个图的大小相匹配.然而,这使得两个
我在2×2网格中有4个图形,但只希望右边的两个图形有条形(比例适用于行).我正在使用表格

divider = make_axes_locatable(ax)
cax = divider.append_axes("right",size="5%",pad=0.05)
plt.colorbar(im,cax=cax)

使颜色栏与这两个图的大小相匹配.然而,这使得两个带有颜色条的颜色与两个颜色条不同,这两个看起来都很糟糕并且消除了仅将轴放在外边缘上的能力.我试着没有使用colorbar调用(使用分频器调用),但当然这会留下一个空白框和侧面的数字.如何使用和不使用彩条的所有图形都具有一致的尺寸而不会在所有图形上放置条形图?

解决方法

使用GridSpec制作一组自定义子图,然后将颜色条添加到最终列.

例:

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

fig = plt.figure()

gs = gridspec.GridSpec(2,3,width_ratios=[10,10,1])

ax = np.empty([2,3],dtype=np.object)
im = np.empty([2,2],dtype=np.object)

for m in range(2):
    for n in range(2):
        ax[m,n] = plt.subplot(gs[m,n])
        im[m,n] = ax[m,n].imshow(np.random.rand(10,10))

for i in range(2):
    ax[i,2] = plt.subplot(gs[i,2])
    plt.colorbar(im[i,1],cax=ax[i,2])

plt.show()

也可以看看:
Python/Matplotlib – Change the relative size of a subplot

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读