#python #python-3.x #matplotlib #plot #legend
#python #python-3.x #matplotlib #сюжет #легенда
Вопрос:
Я не могу найти способ получить легенду моего сюжета. Мои данные представляют собой фрейм данных, состоящий из 3 столбцов x, y и z. x и y представляют координаты точки, а z — метка (0,1,2,3), которой принадлежит точка. Пример данных :
Мне нужно построить диаграмму рассеяния с легендой, содержащей цвет, представляющий соответствующую метку. Я построил диаграмму рассеяния, но не могу понять, как поместить в нее легенду. Код, который я использовал до сих пор (dft — это фрейм данных) :
import matplotlib.pyplot as plt
%matplotlib inline
fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot()
ax.scatter(dft['x'] , dft['y'], c=dft['z'], cmap = 'hsv')
plt.show()
Полученная мной цифра :
Мне нужна легенда для каждого цвета.
Ответ №1:
Вместо этого вы можете попробовать этот код:
import matplotlib.pyplot as plt
%matplotlib inline
plt.figure(figsize=(8,8))
plt.scatter(dft['x'] , dft['y'], c=dft['z'], cmap = 'hsv')
plt.colorbar()
Комментарии:
1. спасибо, но мне нужна легенда для каждого используемого сдержанного цвета (в данном случае 4) вместе с меткой.
2. Вы ее построили … если есть только четыре цвета, он должен давать только эти цвета в легенде
3. Да, я это сделал, но hsv содержит диапазон цветов и дает полосу всех этих цветов с числовой шкалой. Я должен представить это кому-то, поэтому я не могу показать это так.
4. Затем установите ограничение на диапазон, который он показывает с помощью plt.clim()
5. Предлагаю использовать BoundaryNorm