Я работаю над визуализацией данных с помощью python matplotlib.Я нашел так много полезных советов для создания этой картины, но мне не хватает вишни на пироге.
Я бы хотел выровнять ось x pcolormesh (используется для построения карты цветов) и ось 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')