Я пытаюсь создать Карту, в которой есть точки, которые имеют цветовую кодировку по категории - однако, когда я раскрашиваю по категориям, индекс включается в категорию, поэтому каждая точка имеет свой собственный цвет. Вот пример кода для воссоздания моей проблемы.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from matplotlib import cm
import geopandas as gpd
from shapely.geometry import Point
import contextily as ctx
list = [[39.17413494, -84.36475604, 'BK'],
[38.96151336, -84.55732482, 'McDonalds'],
[38.95100498, -84.55013050000001, 'McDonalds'],
[38.96186501, -84.55717946, 'McDonalds'],
[39.00969774, -84.50139703, 'Subway'],
[39.09614656, -84.56445953, 'Pizza Hut'],
[38.98661028, -84.39965444, 'Popeyes'],
[39.34727542, -84.66033389, 'Arbys'],
[39.09854089, -84.55881323, 'Wendys'],
[39.0985409, -84.55881323, 'Subway'],
[38.98693673, -84.39936496, 'Starbucks'],
[39.17663372, -84.66664250000001, 'ChickFilA'],
[39.19368097, -84.67709306, 'Subway'],
[39.202496000000004, -84.5474509, 'Starbucks'],
[39.202496000000004, -84.5474509, 'Starbucks'],
[39.05680444, -84.32690772, 'BK'],
[39.049786100000006, -84.39536650000001, 'McDonalds'],
[39.049786100000006, -84.39536650000001, 'McDonalds'],
[39.049786100000006, -84.39536650000001, 'McDonalds'],
[39.049786100000006, -84.39536650000001, 'Subway'],
[39.049786100000006, -84.39536650000001, 'Pizza Hut'],
[39.04982251, -84.39533805, 'Popeyes'],
[39.04982249, -84.39533811, 'Arbys'],
[39.04982581, -84.39533835, 'Wendys'],
[39.04982419, -84.39533558, 'Subway'],
[39.04982533, -84.39534599, 'Starbucks'],
[39.04982604, -84.39534769, 'ChickFilA'],
[39.356410100000005, -84.361086, 'Subway'],
[39.18283407, -84.38227921, 'Starbucks'],
[39.43731072, -84.26926351, 'Starbucks']]
data = pd.DataFrame(list, columns =['Lat', 'Long', 'Type'])
geometry = [Point(xy) for xy in zip(data['Long'], data['Lat'])]
crs = {'init':'epsg:4326'}
gdf = gpd.GeoDataFrame(data, crs=crs, geometry=geometry)
cmap = plt.cm.get_cmap('Dark2', 9)
gdf = gdf.to_crs(epsg=3857)
ax = gdf.plot(c=gdf.Type, cmap=cmap, label=gdf.Type, figsize=(10,10), alpha=.5)
ctx.add_basemap(ax, url=ctx.providers.Stamen.TonerLite)
ax.set_axis_off()
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
В результате получается следующее изображение:
![enter image description here](https://i.stack.imgur.com/rXibL.png)
Как вы можетесм. каждый «Макдональдс» имеет свой собственный цвет, а легенда перечисляет каждую точку данных.