Выравнивание осей pcolormesh и обычного графика в подплоте (GridSpec) с использованием matplotlib в python - PullRequest
0 голосов
/ 19 декабря 2018

Я работаю над визуализацией данных с помощью 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')

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...