У меня есть некоторые данные, которые я изобразил ниже. Я хочу взять область, которую я пометил в пурпурной рамке, и исключить ее из графика, так что ось x подплота 1 представляет собой интервал типа [1981, 1993] + [2009, 2014]
.
Код, который я использую для этого, приведен ниже:
# do figure 1
fig1, ax1 = plt.subplots(nrows=2, figsize=(8.5, 11))
# > plot 1
ax1[0].set_title('plot1')
ax1[0].set_xlabel('x')
ax1[0].set_ylabel('y1', color='tab:red')
ax1[0].plot(cumlassets.index, cumlassets.values, color='tab:red')
ax1[0].tick_params(axis='y', labelcolor='tab:red')
# > plot2
ax1a = ax1[0].twinx()
ax1a.set_ylabel('y2', color='tab:blue')
ax1a.plot(ail_2016.index, ail_2016.values, color='tab:blue')
ax1a.tick_params(axis='y', labelcolor='tab:blue')
# > s
sns.barplot(x='x', y='y', hue='hue', dodge=False, data=res, ax=ax1[1])
ax1[1].set_title('plot2')
ax1[1].set_xticklabels(res['x'].values, rotation='vertical', ha='center')
ax1[1].set_xlabel('x')
ax1[1].set_ylabel('y')
fig1.tight_layout()
Я отмечу, что подзаговор вверху уже делает несколько прикольных вещей ax[0].twinx()
, чтобы разрешить прорисовку двух линийна одном и том же графике с разными масштабами.
Было бы также замечательно найти способ сделать это на нижнем линейном графике, который хочет сделать что-то подобное. То, как я его сейчас настроил, немного хакерское, с промежуточной точкой в данных с {'x': '. . .', 'y': 0}
.

РЕДАКТИРОВАТЬ: ОтносительноСюжет бара, я решил просто снять галочки.