#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'