gpt4 book ai didi

python - 为地理图轴子图设置clim

转载 作者:行者123 更新时间:2023-12-01 06:34:21 26 4
gpt4 key购买 nike

我正在使用 geoplot,它使用 matplotlib 来创建绘图。

这样的功能之一是geoplot.pointplot,它会在您每次调用它时创建一个AxesSubplot。这允许您多次调用它并覆盖一堆点图。底层代码只是创建一个 matplotlib scatter

我的问题是,对于每个 pointplotgeoplot 都会为它们分配一个单独唯一的 cmap,因此如果一个图是黄色的如果值为 40,另一个可能是蓝色。这是一个问题,因为我不想在一个图上有多个图例。理想情况下,所有图都遵循一个图例,并且图之间的值是一致的。

下面是一个例子:

enter image description here

任何解决此问题的帮助将不胜感激。我尝试将 vminvmax 提供给 geoplot.pointplot 但它们都没有影响。

编辑:

我找到了一个“解决方案”。通过向南极的每个子图添加一个点,它会落在图表的边界之外,因此人为地增加了颜色条的范围。我不会回答这个问题,因为这是实现我想要完成的事情的一种非常老套的方式,而且并不理想。这是通过以下代码完成的:

t = t.append({'altitude': max_alt, 'geometry': Point(0, -90)}

最佳答案

执行此操作的“正确”方法是创建一个 matplotlib.cm.cmap 实例以及一个 matplotlib.colors.Normalize 并将它们传递给 geoplot.pointplot 分别通过关键字参数 cmapnorm 。问题中的图像使用的颜色图是 viridis,下面是创建和规范化 viridis cmap 的示例:

import numpy as np
from matplotlib import colors, cm

cmap = cm.get_cmap('viridis')
norm = colors.Normalize(min(x), max(x))

这会将颜色图标准化为 x 比例,然后您将这些对象传递到 geoplot.pointplot 的每次调用中,

geoplot.pointplot(..., cmap=cmap, norm=norm)
geoplot.pointplot(..., cmap=cmap, norm=norm)
# etc...

这将为您提供所有绘图中相同的颜色条。

关于python - 为地理图轴子图设置clim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59745103/

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