Окончательный график должен выглядеть примерно так, но повернут на 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