使用python中的matplotlib将pcolormesh和子图(GridSpec)中的普通图的轴对齐

时间:2018-12-19 01:47:11

标签: python matplotlib

我正在使用python matplotlib进行数据可视化。到目前为止,我已经找到了许多有用的技巧来制作这张照片,但是我却错过了馅饼上的樱桃。

我想对齐pcolormesh的x轴(用于绘制颜色图)和普通图的x轴。在下图中,我想挤压法线图以匹配上方颜色图的比例。在下面的示例中,我显示了颜色图和对角线元素的对应图。

也为了将来使用,我想问一下如何通过在红色绘制的区域中挤压另一个图形来做同样的事情。我提供了使用GridSpec的最小工作示例。

非常感谢您!

#Xx, Yy and Q_avg are meshgrids of size 500x500 in my case 
fig1 = plt.figure(1, figsize=(7, 7))

# Figure with grid size 6x4
gridspec.GridSpec(6, 4)
ax = plt.subplot2grid((6, 4), (0, 0), colspan = 2, rowspan = 2)
im = plt.pcolormesh(Xx, Yy, Q_avg, cmap="plasma")
plt.plot(Xx.diagonal(), Yy.diagonal())
plt.xlim(np.min(Xx), np.max(Xx))
plt.ylim(np.min(Yy), np.max(Yy))
plt.gca().set_aspect('equal', adjustable='box')
plt.title('Q')
plt.ylabel('y (pc)')
divider = make_axes_locatable(ax)
cax = divider.append_axes('right', size='5%', pad=0.05)
fig1.colorbar(im, cax=cax, orientation='vertical')
### Q diagonal plot
plt.subplot2grid((6, 4), (2, 0), colspan = 2, rowspan = 1)
plt.plot(Xx[:, 0], Q_avg.diagonal())
plt.xlim(np.min(Xx), np.max(Xx))
plt.ylabel('Q')

enter image description here

0 个答案:

没有答案