Первый подзаголовок (из 2 с ломаной осью x) не визуализируется - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь построить временной ряд с перерывом примерно в один год посередине. Я попытался по существу сделать 2 подсюжета, разделяющих ось Y, с разрывом между двумя пределами x. Однако первый график (первый период временного ряда до перерыва) не отображается. Есть предложения?

import matplotlib.dates as mdates

os.chdir(r'C:\Users\work\Documents\DavisData\graphs\2020')
for c in relevant_categories:
    if subset_m[c].sum() > 0:
        
#         plt.figure(figsize=(12,10))
        f,(ax,ax2) = plt.subplots(1,2,sharey=True, facecolor='w')
        ax = subset_m[c].plot(color='tomato', grid = False, label='Davis Topics')
        ax2 = subset_m[c].plot(color='tomato', grid = False, label='Davis Topics')
        
        ### make the break
        ax.set_xlim([datetime.date(2010, 1, 1), datetime.date(2017, 12, 30)])
        ax2.set_xlim([datetime.date(2019, 1, 1), datetime.date(2020, 7, 1)])
        
        # hide the spines between ax and ax2
        ax.spines['right'].set_visible(False)
        ax2.spines['left'].set_visible(False)
        ax.yaxis.tick_left()
        ax.tick_params(labelright='off')
        ax2.yaxis.tick_right()
        
        plt.show()

К сожалению, я получаю вот такой график:

введите описание изображения здесь

1 Ответ

4 голосов
/ 04 августа 2020
ax = subset_m[c].plot(color='tomato', grid = False, label='Davis Topics')
ax2 = subset_m[c].plot(color='tomato', grid = False, label='Davis Topics')

должно быть

subset_m[c].plot(color='tomato', grid = False, label='Davis Topics', ax=ax)
subset_m[c].plot(color='tomato', grid = False, label='Davis Topics', ax=ax2)

...