使用 R 从等高线图图像中提取值

问题描述 投票:0回答:1

我想使用 R 提取以下图的 xyz 值:

x 是温度轴,y 是 pm10 轴,z 是基于右上角图例的相对死亡风险评估值。有什么想法吗?

r image contour
1个回答
0
投票

我不知道R中这个问题有现成的解决方案,而且我无法提供完整的答案。但这里有一些提示。

  1. 为了使接下来的步骤更容易,我将图像中的面板和颜色图例裁剪成单独的图像文件。
  2. 您可以使用R中的包
    imager
    magick
    来提取图像数据。使用它们从面板和图例中提取 RGB 值。
  3. x
    y
    像素坐标转换为绘图中使用的 x 和 y 值。
  4. 将 RGB 值转换为颜色图例中显示的值。

步骤 1) 可以在 R 中使用

magick::image_crop()
完成,但在其他软件中裁剪可能会更快。

步骤2)可以这样完成:

注意:我使用的是完整图像,您只需使用裁剪后的面板。

library(magick)
library(imager)
image_data <- image_read("https://i.stack.imgur.com/FzssW.png")

image_df <- 
  image_data |> 
  image_quantize(colorspace = "rgb") |> 
  imager::magick2cimg() |> 
  as.data.frame(wide = "c")

我对步骤 3) 和 4) 没有任何进一步的指导。

© www.soinside.com 2019 - 2024. All rights reserved.