Исключить элементы картопы из легенды Matplotlib - PullRequest
0 голосов
/ 28 июня 2019

Я наносю точки рассеяния на карту и вижу нежелательные прямоугольники в моей легенде, несмотря на вставку label='_nolegend_':

# import functions
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.img_tiles as cimgt

# Create a Stamen terrain background instance
stamen_terrain = cimgt.Stamen('terrain-background')
fig = plt.figure(figsize = (10,10))
ax = fig.add_subplot(1, 1, 1, projection=stamen_terrain.crs, label='_nolegend_')

# Set range of map, stipulate zoom level
ax.set_extent([-122.7, -121.5, 37.15, 38.15], crs=ccrs.Geodetic())
ax.add_image(stamen_terrain, 12, label='_nolegend_')

# Add scatter point
ax.scatter(-122.4194, 37.7749, s=55, c='k', transform=ccrs.PlateCarree())    
ax.legend(('','','San Francisco'), loc = 3)
plt.show()

Как убрать прямоугольники и просто показать точку разброса в легенде?

Legend has unwanted rectangles

1 Ответ

1 голос
/ 28 июня 2019

Проблема в том, что вы устанавливаете метки для каждого из элементов в осях с помощью ('','','San Francisco').Вместо этого просто установите метку для самого разброса

ax.scatter(..., label="Some City")
ax.legend(loc=3)

В качестве альтернативы, если вы не хотите назначать разброс метки, вы можете передать маркер и метку legend:

sc = ax.scatter(...)    
ax.legend(handles=[sc], labels=['Some City'], loc = 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...