Объединение графиков с отсутствующими значениями x - PullRequest
0 голосов
/ 27 декабря 2018

Это может быть дубликатом, но я не смог найти решение, поэтому вот оно:

Я пытаюсь объединить следующие кадры данных в один график.Df1:

quarter   count
2017-1    1
2017-2    1
2017-3    1
2017-4    2
2018-2    5
2018-3    2

с Df2:

quarter   count
2017-1    9
2017-2    16
2017-3    6
2017-4    15
2018-1    14
2018-2    17
2018-3    20
2018-4    16

Однако, если я запусту следующее:

ax = plt.gca()
Df1.plot(x = 'quarter', y = 'count', ax = ax)
Df2.plot(x = 'quarter', y = 'count', ax = ax)
plt.xticks(Df2.index, Df2['quarter'].values)

все пойдет не так, поскольку он просто отображает 'Значения Df1 в 2018-2 'и' 2018-3 'в точках' 2018-1 'и' 2018-2 '.Это случается, я думаю, поскольку в Df1 нет значения «2018-1».Есть идеи, как это решить?(И пусть график будет нулевым в 2018-1 для Df1?)

1 Ответ

0 голосов
/ 27 декабря 2018

Использование reindex_like и fillna:

df1 = df1.set_index('quarter').reindex_like(df2.set_index('quarter')).reset_index().fillna(0)

ax = plt.gca()
df1.plot(x = 'quarter', y = 'count', ax = ax)
df2.plot(x = 'quarter', y = 'count', ax = ax)
plt.xticks(df2.index, df2['quarter'].values)
plt.show()

Выходной график выглядит следующим образом:

enter image description here

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