Как создать легенду в сюжете?

#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