You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动