Окончательный график должен выглядеть примерно так, но повернут на 45 градусов.
Пример Image
Поэтому повернуть центральную часть было несложно, если судить по примеру 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