matplotlib:多次使用附加轴

matplotlib:多次使用附加轴,matplotlib,divider,colorbar,Matplotlib,Divider,Colorbar,我是matplotlib的新手,所以我对该语言的掌握还不够强,不知道我是否用正确的方法来解决这个问题,但我已经寻找了一段时间的答案,我只是在这方面找不到任何方法 我知道如何使用matplotlib的append_axes locator函数将直方图附加到2D绘图旁边,例如: axMain= fig1.add_subplot(111) cax = plt.contourf(xl,y1,z1) divider = make_axes_locatable(axMain) axHisty = divid

我是matplotlib的新手,所以我对该语言的掌握还不够强,不知道我是否用正确的方法来解决这个问题,但我已经寻找了一段时间的答案,我只是在这方面找不到任何方法

我知道如何使用matplotlib的append_axes locator函数将直方图附加到2D绘图旁边,例如:

axMain= fig1.add_subplot(111)
cax = plt.contourf(xl,y1,z1)
divider = make_axes_locatable(axMain)
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axMain)
axHisty.plot(x,y)
我还知道如何以类似的方式附加颜色条:

divider = make_axes_locatable(axMain)
ax_cb = divider.new_horizontal(size='5%', pad=0.3)
fig1.add_axes(ax_cb)
fig1.colorbar(cax, cax=ax_cb)

我不清楚的是,如何在同一子图中同时使用这两个图,而不使两个附图重叠。为了清楚起见,我希望直方图具有与
axContour
相同的yaxis刻度和高度,并且我希望颜色栏具有与
axContour
相同的高度。ImageGrid似乎不是我想要的,因为我不想固定绘图的大小。如果我能以交互方式添加/删除这些人物“装饰”,对我来说会更好,但这可能是不可能的…让我知道

您已经在使用
分割器固定绘图的大小。附加轴(“右”,1.2,pad=0.1,sharey=axMain)
。1.2是新轴的尺寸。下面是使用绘制三个轴的方法

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.gridspec as grd
from numpy.random import rand

# add axes
fig1 = plt.figure(1)
gs = grd.GridSpec(1, 3, width_ratios=[5,1, 1], wspace=0.3)
axMain = plt.subplot(gs[0])
axHisty = plt.subplot(gs[1])
ax_cb = plt.subplot(gs[2])

# some things to plot
x = [1,2,3,4]
y = [1,2,3,4]
x1 = [1,2,3,4]
y1 = [1,2,3,4]
z1 = rand(4,4)

# make plots
h = axMain.contourf(x1,y1,z1)
axHisty.plot(x,y)
cb = plt.colorbar(h, cax = ax_cb)

plt.show()