Matplotlib исключить интервал из построения - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть некоторые данные, которые я изобразил ниже. Я хочу взять область, которую я пометил в пурпурной рамке, и исключить ее из графика, так что ось 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}.

enter image description here

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...