Вращение подзаголовка matplotlib с дополнительными осями ⇐ Python

Программы на Python
Anonymous
Вращение подзаголовка matplotlib с дополнительными осями

Сообщение Anonymous »

В настоящее время я пытаюсь создать трехпанельную фигуру, где центральный график содержит контурный график, а верхние левая и правая панели показывают несколько линий. Дело в том, что все графики повернуты на 45 градусов по часовой стрелке.
Окончательный график должен выглядеть примерно так, но повернут на 45 градусов.
< img alt="Пример изображения" src="https://i.sstatic.net/Umf8jpDE.png" />
Таким образом, повернуть центральную часть было несложно, основываясь на примере float_axes . Выровнять две другие оси не так-то просто. Я пробовал использовать AxesDivider и ax.inset_axes, но безуспешно.
Итак, текущее состояние следующее:

Код: Выделить всё

import matplotlib.pyplot as plt
from matplotlib.transforms import Affine2D
from mpl_toolkits.axes_grid1 import make_axes_locatable
from mpl_toolkits.axisartist import floating_axes

fig = plt.figure(figsize=(7, 7))

plot_extents = 0, 1, 0, 1

# Create transformation for rotation
transform = Affine2D().rotate_deg(-45)
helper = floating_axes.GridHelperCurveLinear(transform, plot_extents)

ax = floating_axes.FloatingSubplot(fig, 111, grid_helper=helper)
fig.add_subplot(ax)

aux_ax = ax.get_aux_axes(transform)
# cs = aux_ax.contourf(x1, x2, y)  # contour plot

divider = make_axes_locatable(ax)

ax_top = divider.append_axes(
"top",
0.8,
pad=0.35,
sharex=aux_ax,
grid_helper=helper,
)
ax_left = divider.append_axes(
"left",
0.8,
pad=0.35,
sharey=aux_ax,
grid_helper=helper,
)

plt.show()

Это дает следующий результат:
Изображение

Есть ли удобный способ выровнять панели?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ional-axes

Вернуться в «Python»