субплоты, основанные на записях двух разных панд DataFrames (с одинаковой структурой) с использованием Seaborn или Matplotlib - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть два кадра данных, как показано ниже.Оба имеют одинаковую структуру (имена столбцов и индекс), но разные значения.DataFrame 1 - это наблюдаемые значения, а DataFrame 2 - это прогноз.Я хотел нарисовать одну фигуру, используя субплоты, каждый из которых представляет один из столбцов, ось Y - значения обоих фреймов данных (две разные линии), а ось X - индекс.

Я знаю, что я должен публиковать образцы кодов своей работы, но кажется, что все они не правы, поэтому я не делюсь своим примером кода.Я действительно хочу использовать что-то вроде sns.FacetGrid от seaborn, поскольку участки имеют более высокие качества.

    08FB006 08FC001 08FC003 08FC005 08GD004
----------------------------------------------
0   253      872    256      11.80    2660
1   250      850    255      10.60    2510
2   246      850    241      10.30    2130
3   241      827    235      9.32     1970
4   241      821    229      9.17     1900
5   232      819    228      8.93     1840
6   231      818    225      8.05     1710
7   234      817    225      7.90     1610
8   210      817    224      7.60     1590
9   200      816    221      7.53     1590
10  199      810    219      7.41     1550

1 Ответ

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

Вы можете изменить приведенный ниже код в соответствии с вашими потребностями -

actual = pd.DataFrame({'a': [5, 8, 9, 6, 7, 2],
                       'b': [89, 22, 44, 6, 44, 1]})
predicted = pd.DataFrame({'a': [7, 2, 13, 18, 20, 2],
                       'b': [9, 20, 4, 16, 40, 11]})

# Creating a tidy-dataframe to input under seaborn
merged = pd.concat([pd.melt(actual), pd.melt(predicted)]).reset_index()
merged['category'] = ''
merged.loc[:len(actual)*2,'category'] = 'actual'
merged.loc[len(actual)*2:,'category'] = 'predicted'

g = sns.FacetGrid(merged, col="category", hue="variable")
g.map(plt.plot, "index", "value", alpha=.7)
g.add_legend();

plt

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