Как построить линейный участок морской линии со строковыми переменными на оси X - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь построить график временного ряда, используя seaborn.lineplot() со строковыми переменными на оси X.

мои данные выглядят так:

    month_year  billamount   tips
0     2018-03     200          10
1     2018-04     230          12
2     2018-05     500          10
3     2018-06     300          15
4     2018-07     200          20
5     2018-08     150          5
6     2018-09     100          5
7     2018-10     400          5
8     2018-11     500          10
9     2018-12     250          30
10    2019-01     200          20

в приведенной выше таблице,month_year - это тип объекта (строка) при попытке построения, он отображает сообщение об ошибке: ValueError: A wide-form input must have only numeric values.

есть ли возможность отобразить значения строки на оси x с помощью seaborn lineplot.?

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Я не уверен, что seaborn должен работать со строками на линейных графиках;но вы всегда можете использовать обычный matplotlib plot.

import matplotlib.pyplot as plt
import pandas as pd

data = pd.DataFrame({"billamount" : [200, 230, 500, 300],
                     "month_year" : ["2018-03", "2018-04", "2018-05", "2018-06", ]})

plt.plot("month_year", "billamount", data=data)

plt.show()

enter image description here

0 голосов
/ 21 февраля 2019

Согласно морской документации линейный участок не поддерживает нечисловые данные.

Не совсем ясно, чего вы хотите достичь, однако я предполагаю, что вам нужна функция seaborn scatterplot , и вы должны указать имена переменных x и y, которые выпытаются построить.

Пример:

tips = [10, 12,10,15]
billamount = [200, 230, 500, 300]
month_year= ["2018-03", "2018-04", "2018-05", "2018-06", ]
data = pd.DataFrame(np.array([tips, billamount, month_year]).T,
                    columns=["tips", "billamount", "month_year"])

ax = sns.scatterplot(x="month_year", y="billamount", data=data)

resulting plot

...