Извините, я не могу загрузить ваши данные, но вот решение с имитацией данных.
import numpy as np
import pandas as pd
from plotnine import *
np.random.seed(0)
df = pd.DataFrame({'x': np.hstack((
np.random.normal(size=1000),
np.random.normal(10, 2, size=1000),
np.random.normal(-10, 2, size=1000))),
'c': [0]*1000 + [1]*1000 + [2]*1000})
(ggplot(df, aes('x', color='c', fill='c')) + geom_density(alpha=0.7))
Дает это:
Взятие первых 1000 строк (соответствует c == 0
):
(ggplot(df[:1000], aes('x', color='c', fill='c')) + geom_density(alpha=0.7))
Теперь создается категориальная переменная:
df['cat'] = df['c'].astype('category')
(ggplot(df, aes('x', color='cat', fill='cat')) + geom_density(alpha=0.7))