Вы можете просто нарисовать их каждый отдельно с помощью простого groupby
, или если вы хотите использовать seaborn
, который позволит вам указать столбец для hue
import pandas as pd
import seaborn as sns
import numpy as np
fig, ax = plt.subplots(figsize=(8,4))
for idx, gp in df.groupby('block'):
gp.plot(x='array_size', y='time', ax=ax, label=idx)
plt.show()
![enter image description here](https://i.stack.imgur.com/XuCLa.png)
С seaborn
(минимум 0,9) вы можете просто сделать:
sns.lineplot(data=df, x='array_size', y='time', hue='block')
Так как у вас много 'blocks'
стандартного цветаЦиклер не собирается сокращать это.Вы можете легко настроить это с помощью ax.set_prop_cycle
Пример данных
df = pd.DataFrame({'x': np.tile(np.arange(1,11,1),20),
'y': np.random.randint(1,25,200),
'block': np.repeat(np.arange(1,21,1),10)})
Код:
fig, ax= plt.subplots(figsize=(8,4))
colors = sns.color_palette("coolwarm", df.block.nunique())
ax.set_prop_cycle('color', colors)
for idx, gp in df.groupby('block'):
gp.plot(x='x', y='y', ax=ax, legend=False)
plt.show()
![enter image description here](https://i.stack.imgur.com/taAVj.png)