首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何改变地图中传说的位置?

如何改变地图中传说的位置?
EN

Stack Overflow用户
提问于 2022-10-27 08:34:22
回答 1查看 36关注 0票数 0

我一直在试图在基本地图上绘制一个形状文件。我在这里的问题是传说的位置。我想把它放在地图的外面(旁边)。

具体来说,我正在绘制shapefile的"Ecoregion“列,它基本上用颜色标记每个多边形(我认为这比将名称实际放置在每个多边形上要好)。我尝试了以下代码并收到了一个错误:

代码语言:javascript
复制
pip install geopandas
pip install contextily
import geopandas as gpd
import contextily as ctx
data = gpd.read_file("icemap.shp")
plt.rcParams.update({'font.size': 14})
ax = data.plot(
    figsize=(12, 10),
    column="Ecoregion",
    cmap="tab10",
    )
map = Basemap(
    llcrnrlon=-50,
    llcrnrlat=30,
    urcrnrlon=70.0,
    urcrnrlat=85.0,
    resolution="i",
    lat_0=39.5,
    lon_0=1,
)
ax.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
map.fillcontinents(color="lightgreen")
map.drawcoastlines()
map.drawparallels(np.arange(10,90,20),labels=[1,1,1,1])
map.drawmeridians(np.arange(-180,180,30),labels=[1,1,0,1])
plt.title("Map", fontsize=16)

错误是-

WARNING:matplotlib.legend:No处理的标签被发现放在图例中。

所以我试着加入

代码语言:javascript
复制
legend-True

在"ax“括号中删除”ax.legend(.)“,但图例显示在地图顶部,如下图所示。

“句柄”是指绘制的列吗?如果是这样的话,我不知道为什么会有这个错误。还是需要添加另一行代码?

如果能在这方面得到帮助,我将不胜感激。

(附件文件链接:https://drive.google.com/file/d/1OfOAstBbbxiqSybpl_CQf-o47YgpbY7D/view?usp=sharing)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-27 11:44:15

我也会考虑Cartopy,因为Basemap已经结束了很长一段时间。矢量的分辨率也远远超过了屏幕上所绘制的分辨率,所以你可以通过稍微简化它来提高性能。

但是,在绘制Geodataframe时,您可以传递传奇关键字。

代码语言:javascript
复制
ax = data.plot(
    figsize=(10, 8),
    column="Ecoregion",
    cmap="tab10",
    legend=True,
    legend_kwds=dict(bbox_to_anchor=(1.05, 1), loc='upper left'),
)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74219050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档