gpt4 book ai didi

python - Jupyter/Geopandas 绘图顺序打破了 figsize

转载 作者:行者123 更新时间:2023-12-05 01:32:18 26 4
gpt4 key购买 nike

我有一个笔记本 ( github link ),我在其中使用 geopandas 绘制带有不同国家/地区颜色的 map 。根据绘图的顺序,有时它不符合我指定的 figsize() 。我在 Ubuntu 20.04 和 Firefox 中本地运行的 jupyter 中以及在 Chromium 中运行的 Binder 和 Colab 中重复看到这种行为。

有人可以帮助我了解发生了什么吗?这是错误还是我对 geopandas/matplotlib 的控制有误?

import matplotlib.pyplot as plt
import geopandas as gpd

world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
sixc = world[ world['continent'] != 'Antarctica' ]
asia = world[ world['continent'] == 'Asia' ]
noam = world[ world['continent'] == 'North America']
swed = world[ world['iso_a3'] == 'SWE' ]

# This works, makes a 2x1 landscapey aspect
axes = sixc.plot(figsize=(8,4), color='lightgrey')
asia.plot(ax=axes, color='green')
noam.plot(ax=axes, color='purple')

# Plotting swed at the end breaks figsize, makes it squareish
axes = sixc.plot(figsize=(8,4), color='lightgrey')
asia.plot(ax=axes, color='green')
noam.plot(ax=axes, color='purple')
swed.plot(ax=axes, color='yellow')

# Plotting swed in the middle makes it ok again
axes = sixc.plot(figsize=(8,4), color='lightgrey')
asia.plot(ax=axes, color='green')
swed.plot(ax=axes, color='yellow')
noam.plot(ax=axes, color='purple')

(此外,对于我的一些(但不是全部!)学生来说,那个 splinter 的情节也没有浅灰色背景国家。这可能是导致方面问题的任何结果/副作用吗?)

最佳答案

对于您使用的 geopandas v 0.8.1,您使用的绘图命令的默认纵横比是自动。因此,您获得的输出图将具有不可预测的纵横比值。尝试

print(axes.get_aspect()) 

对于每个地 block 。在以前版本的 geopandas 中,将得到 equal 作为输出,并且绘图是正确的。但在您的情况下,您将获得不代表相等方面的值。

为了简单地解决您的问题,您可以添加这行代码:

 axes.set_aspect('equal')

在最后一个情节陈述之后。

关于python - Jupyter/Geopandas 绘图顺序打破了 figsize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65636715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com