Можно несколько раз вызвать lineplot
, передав объект, такой как серия панд, именованным аргументам:
sns.lineplot(x=x1.index, y=x1['x25'])
sns.lineplot(x=x1.index, y=x1['x50'])
sns.lineplot(x=x1.index, y=x1['x75'])
sns.lineplot(x=x1.index, y=x1['x100'])
sns.lineplot(x=x1.index, y=x1['x125'])
Или в цикле:
for i in ['x25','x50','x75','x100','x125']:
sns.lineplot(x=x1.index, y=x1[i])
Тем не менее, рассмотрите возможность использования одного фрейма данных и, следовательно, одного вызова lineplot
, растопив ваши широкие данные в long и отобразив ваш индекс в виде столбца.Затем вызовите lineplot
с оттенком для автоматической легенды:
# CREATE NEW COLUMN NAMED index
x1 = x1.reset_index()
# MELT DATA
mdf = x1.melt(id_vars='index')
# PLOT LINE WITH data AND hue ARGUMENTS
sns.lineplot(x='index', y='value', data=mdf, hue='variable')
Данные
df = pd.DataFrame({'X': np.random.uniform(2000, 5000, 500)})
x1 = pd.DataFrame({'x25': df['X'][0:45].reset_index(drop=True),
'x50': df['X'][90:135].reset_index(drop=True),
'x75': df['X'][180:225].reset_index(drop=True),
'x100': df['X'][270:315].reset_index(drop=True),
'x125': df['X'][360:405].reset_index(drop=True)})