У меня есть список значений x и y и список назначений цветов для каждой точки («зеленый», «синий», «красный» и т. Д.). Все примеры, которые я нашел, создают легенду, основанную на отдельных командах plt.scatter(), которые в дальнейшем достаточно просто plt.legend(). making matplotlib scatter plots from dataframes in Python's pandas. Мой разброс не имеет отдельных рассеиваний для каждой цветной группы. Итак, как мне создать легенду, в которой отображаются цвета каждой группы?Как добавить легенду на график разброса, который имеет назначение цвета
import matplotlib.pyplot as plt
colors = ["red", "orange", "green", "blue", "purple", "gray"]
regions = ["Hanoi", "Nha Trang", "Vung Tau", "Phu Quoc", "Quang Ngai", "Saigon"]
region_colors=dict(zip(regions,colors))
grp_color=[]
for i in data['Region']:
grp_color.append(region_colors[i])
x_long=data[' Longitude']
y_lat=data[" Latitude"]
plt.scatter(x_long,y_lat,c=grp_color)
plt.legend(grp_color,regions,loc='right')
Логика обращенной здесь , Обычно самый простой способ создать легенду для графика разброса с разными цветами - это разбить данные вверх, отобразить графики разброса (или обычные графики) и использовать 'plt.legend()'. – ImportanceOfBeingErnest
, так что я должен вернуться к фреймворку данных и разделить его, чтобы я мог строить каждую группу отдельно? –
Это, безусловно, вариант. Вы также можете использовать мой ответ ниже. – ImportanceOfBeingErnest