Я пытаюсь использовать функциональность seaborn dataframe (например, передавая имена столбцов в параметры x
, y
и hue
) для своих временных рядов (в формате даты-время панд).
x
должно исходить из столбца временных рядов (преобразовывается из pd.Series из строк с pd.to_datetime) y
должно поступать из плавающего столбца hue
приходитиз категориального столбца, который я вычислил.
В одной и той же серии есть несколько потоков, которые я пытаюсь разделить (и использую оттенок для разделения их визуально), и поэтому они не должны быть связанылиния (как на диаграмме рассеяния)
Я пробовал следующие типы графиков, каждый из которых имеет свою проблему:
sns.scatterplot
: правильно отображает график иу меток правой шины есть проблемы с xlimits, и я не могу установить их правильно с помощью plt.xlim (), используя data.Dates.min и data.Dates.min
sns.lineplot
:получает пределы и метки правильно, но я сНе удалось найти параметр для отключения линий между отдельными точками данных, как в matplotlib.Я попытался установить параметры markers
и dashes
, но безрезультатно.
sns.stripplot
: моя последняя попытка правильно нарисовала точки данных и получила правильные значения xlimits, но испортиламетки метки
Пример входных данных для простого воспроизведения:
dates = pd.to_datetime(('2017-11-15',
'2017-11-29',
'2017-12-15',
'2017-12-28',
'2018-01-15',
'2018-01-30',
'2018-02-15',
'2018-02-27',
'2018-03-15',
'2018-03-27',
'2018-04-13',
'2018-04-27',
'2018-05-15',
'2018-05-28',
'2018-06-15',
'2018-06-28',
'2018-07-13',
'2018-07-27'))
values = np.random.randn(len(dates))
clusters = np.random.randint(1, size=len(dates))
D = {'Dates': dates, 'Values': values, 'Clusters': clusters}
data = pd.DataFrame(D)
Каждой из функций я передаю одинаковые аргументы:
sns.OneOfThePlottingFunctions(x='Dates',
y='Values',
hue='Clusters',
data=data)
plt.show()
Итак, чтобы напомнить, что я хочу, это график, который использует функциональность Seaborn pandas, и наносит точки (не линии) с правильными пределами x и читаемыми метками x:)
Любая помощь будет принята с благодарностью.