如何将一个 smoothScatter 图除以另一个?

How to divide one smoothScatter plot by another?

我想知道某些地名有多常见。在国家地名词典中,我在 R 中做了两个 smoothScatter(),一个包含所有地点,另一个包含我感兴趣的地名。

所有地点:

具有特定名称的地点:

现在,我如何将第二个除以第一个,以获得所有名称中感兴趣名称的密度?它可以是 R 解决方案,也可以是 ImageMagick、GIMP...

在 Imagemagick 6 中,您可以按如下方式划分您的两个图像:

convert second.png first.png +swap -compose divide -composite division.png


如果使用 Imagemagick 7,则使用 magick 而不是 convert。

Imagemagick 7默认编译为HDRI模式;而 Imagemagick 6 默认不在 HDRI 模式下编译。

这意味着结果可能超出正常的 16 位范围。因此除法可能导致值大于 1。(请参阅下面关于 Imagemagick 中使用的标准化值的评论)。但是,通常它们被限制为黑白极端,以便能够保存为正常图像类型,例如 PNG。

但是,可以关闭钳位并以 PFM 等格式获得结果,该格式可以保存正常范围之外的值。或者我们可以除以足够的范围,使范围仍然在适合 PNG 的范围内,或者可以将结果拉伸到全黑白范围。例如:

magick second.png first.png +swap -define compose:clamp=off -compose divide -composite -evaluate divide 10 division2.png


magick second.png first.png +swap -define compose:clamp=off -compose divide -composite -auto-level division3.png


这比上面的第一种方法提供了更多细节。