最近对邻接关系的澄清的补充问题。我知道我需要实现什么,但是相对于python / matplotlib而言,我还是有点迷茫。
按照标题-我正在尝试制作一个包含水平和垂直邻接关系的仪表板布局。根据先前问题的指导-我有一个外部gridspec和3个内部gridspec(gs0,gs1和gs2)。
我的挑战是中间规格-gs1。我需要生成2个垂直图表(在该行的LHS上)和一个跨过RHS的2行的单个极坐标图。我的挑战是如何将2个单元格合并为一个斧头,重要的是创建这种复杂布局的正确方法是什么。
谢谢。
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
def example_plot(ax):
ax.plot([1, 2])
ax.set_xlabel('x-label', fontsize=12)
ax.set_ylabel('y-label', fontsize=12)
ax.set_title('Title', fontsize=14)
fig = plt.figure(constrained_layout=False)
outer_gs = gridspec.GridSpec(nrows=3, ncols=1, figure=fig, height_ratios=[5,2,2], wspace=0.2, hspace=0.3)
gs0 = gridspec.GridSpecFromSubplotSpec(nrows=3, ncols=1, subplot_spec=outer_gs[0], height_ratios=[1,4,1], wspace=0.2, hspace=0)
gs1 = gridspec.GridSpecFromSubplotSpec(nrows=2, ncols=2, subplot_spec=outer_gs[1], width_ratios=[5,2], wspace=0.2, hspace=0.2)
gs2 = gridspec.GridSpecFromSubplotSpec(nrows=1, ncols=5, subplot_spec=outer_gs[2], wspace=0, hspace=0.3)
# Top 3 adjacent charts
for n in range(3):
ax = fig.add_subplot(gs0[n])
example_plot(ax)
# Middle bit - 2 horizontal plots and polar chart on RHS (spanning both rows)
ax4 = fig.add_subplot(gs1[0])
example_plot(ax4)
ax5 = fig.add_subplot(gs1[1])
example_plot(ax5)
ax6 = fig.add_subplot(gs1[2])
example_plot(ax6)
ax7 = fig.add_subplot(gs1[3])
example_plot(ax7)
# Bottom 5 dials
for n in range(5):
ax = fig.add_subplot(gs2[n])
example_plot(ax)