Почему не все факторные переменные отображаются в легенде?

#python #matplotlib #seaborn

#python #matplotlib #сиборн

Вопрос:

Я довольно новичок в построении графиков с использованием matplotlib, и у меня возникли несколько проблем с легендами, у меня есть этот набор данных:

         Wavelength       CD  Time
0          250.0  0.00000     1
1          249.8 -0.04278     1
2          249.6 -0.03834     1
3          249.4 -0.02384     1
4          249.2 -0.04817     1
...          ...      ...   ...
3760       200.8  0.99883    15
3761       200.6  0.50277    15
3762       200.4 -0.19228    15
3763       200.2  0.81317    15
3764       200.0  0.90226    15

[3765 rows x 3 columns]
  

Типы столбцов:

 Wavelength    float64
CD            float64
Time            int64
dtype: object
  

Почему при отображении времени в качестве категориальной переменной все значения не отображаются в легенде?

 x = df1['Wavelength']
y = df1['CD']
z = df1['Time']

sns.lineplot(x, y, hue = z)
plt.tight_layout()
plt.show()
  

Линейный график

Но я могу построить график с использованием панд, встроенных в функцию matplotlib, с цветовой панелью, подобной этой:

 df1.plot.scatter('Wavelength', 'CD', c='Time', cmap='RdYlBu')
  

точечный график

Каков наилучший способ выбора между дискретными и непрерывными легендами с использованием matplotlib / seaborn?
Большое спасибо!

Комментарии:

1. Просто примечание: sns.lineplot(x, y, hue = z) может быть sns.lineplot(x='Wavelength', y='CD', hue='Time', data=df1')

2. Также обратите внимание, что sns.lineplot поддерживается опция legend='full'