Plotnine中点图层图例显示为多边形的问题求助
Plotnine中点图层图例显示为多边形的问题求助
我在制作一张包含多图层的地图,其中一个是点图层(降水站点),其他都是多边形图层(流域和不同距离的缓冲区)。我希望图例能正确区分元素:点图层的图例显示为圆点,多边形图层显示为对应的线条样式,但不管怎么尝试都没实现这个效果。
下面是我最初的实现代码:
# Precipitation map precip_station_map = ( ggplot(precip_stations_clipped) + geom_map( mapping=aes(geometry='geometry'), color = 'red' ) + geom_map( data=upper_hudson_basin_10km_buffer, mapping=aes(geometry='geometry', color='"10km buffer"'), inherit_aes=False, fill=None ) + geom_map( data=upper_hudson_basin_30km_buffer, mapping=aes(geometry='geometry', color='"30km buffer"'), inherit_aes=False, fill=None ) + geom_map( data=upper_hudson_basin.to_crs(precip_stations_clipped.crs), mapping=aes(geometry='geometry', color='"Upper Hudson Basin"'), inherit_aes=False, fill=None ) + labs(title='Precipitation Map') + scale_color_manual( name='Buffer Distance:', values={ '10km buffer': 'royalblue', '30km buffer': 'orange', 'Upper Hudson Basin': 'black' } ) + theme_minimal() + theme( legend_title=element_text(size=10), legend_text=element_text(size=8), legend_position='bottom' ) ) precip_station_map.draw()
对应的效果图:
之后我尝试了合并图层的方式来调整,代码如下,但问题依然存在——图例里的降水站点还是显示为多边形样式,不是我想要的圆点:
geom_merged = pd.concat( [ #precip_stations_clipped[['geometry']].assign(LAYER='Preciptation Station'), upper_hudson_basin.to_crs(precip_stations_clipped.crs)[['geometry']].assign(LAYER='Upper Hudson'), upper_hudson_basin_10km_buffer[['geometry']].assign(LAYER='10km buffer'), upper_hudson_basin_30km_buffer[['geometry']].assign(LAYER='30km buffer') ] ) precip_station_map2 = ( ggplot(geom_merged) + geom_map( mapping=aes(geometry='geometry', color = 'LAYER'), fill = None ) + geom_map( data = precip_stations_clipped[['geometry']].assign(LAYER='Preciptation Station'), mapping=aes(gemetry='geometry', color='LAYER') ) )
对应的效果图:
有没有办法让降水站点的图例项显示为圆点,同时保留多边形图层的线条样式图例呢?
备注:内容来源于stack exchange,提问作者Alan Alves




