You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R提取等高线图XYZ数值的技术咨询

用R提取热力图XYZ数值的可行思路

优先方案:追溯原始数据

如果这张图来自已发表研究、报告或你自己生成的图表,优先找原始数据集:

  • 若为学术图表,查看论文补充材料或联系作者获取数据,这是最准确的方式
  • 若为自己用R(如ggplot2、plotly)绘制的图,直接复用绘图时的原始数据即可,无需从图片提取

无原始数据时:基于图像识别的提取方法

如果只能从图片本身提取,可通过R的图像分析工具实现,步骤如下:

1. 准备工具包

安装并加载处理图像、颜色和数据的R包:

install.packages(c("magick", "imager", "tidyverse", "colorspace"))
library(magick)
library(imager)
library(tidyverse)
library(colorspace)

2. 图像预处理

读取图片并裁剪掉图例、坐标轴标签等无关区域,只保留热力图主体:

# 读取本地图片(建议用高清原图)
img <- image_read("FzssW.png")
# 裁剪区域需根据实际图片调整,格式为"widthxheight+x_offset+y_offset"
img_cropped <- image_crop(img, "500x350+80+60") 

3. 坐标轴刻度校准

手动记录X(温度)、Y(PM10)轴的极值和对应像素坐标,建立像素到实际数值的映射:

# 将裁剪后的图转为imager对象,提取像素坐标
img_ima <- magick2cimg(img_cropped)
pixel_df <- as.data.frame(img_ima, wide = "c") %>% 
  rename(r = c.1, g = c.2, b = c.3) %>% 
  mutate(x_pix = x, y_pix = y)

# 示例校准:假设X轴像素x=1对应温度-10,x=500对应30;Y轴y=1对应PM10 0,y=350对应150
pixel_df <- pixel_df %>% 
  mutate(
    temp = scales::rescale(x_pix, to = c(-10, 30)),
    pm10 = scales::rescale(y_pix, to = c(0, 150))
  )

4. 颜色匹配Z值(相对死亡风险)

提取右上角图例的颜色梯度和对应Z值,建立颜色与数值的映射,再匹配每个像素的颜色:

# 手动提取图例的颜色和对应Z值(需对照原图的刻度)
color_map <- tibble(
  z = seq(1.0, 1.2, by = 0.05),
  hex_color = c("#e5f5f9", "#ccece6", "#99d8c9", "#66c2a4", "#41ae76", "#238b45")
) %>% 
  mutate(rgb_color = map(hex_color, ~col2rgb(.)/255))

# 计算每个像素颜色与图例颜色的距离,匹配最近的Z值
pixel_df <- pixel_df %>% 
  rowwise() %>% 
  mutate(
    pixel_rgb = list(c(r, g, b)),
    # 用CIE Lab颜色空间计算距离,比RGB更准确
    color_dist = map_dbl(color_map$rgb_color, ~{
      dist(convertColor(rbind(pixel_rgb, .), from = "sRGB", to = "Lab"))
    }),
    z = color_map$z[which.min(color_dist)]
  ) %>% 
  ungroup() %>% 
  select(temp, pm10, z)

5. 结果整理

最后得到的pixel_df就是包含XYZ数值的数据框,可导出为CSV或进一步分析:

write_csv(pixel_df, "heatmap_xyz_data.csv")

注意事项

  • 图像分辨率越高,提取精度越好,尽量避免使用压缩后的低清图片
  • 坐标轴校准和图例颜色提取需要手动对照原图,确保数值映射准确
  • 颜色匹配时,使用CIE Lab颜色空间比RGB空间的匹配结果更贴合人眼感知

内容的提问来源于stack exchange,提问作者Akis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:13:12