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

如何为R中读取的Shapefile多边形分配预设RGB颜色值

解决方法

问题出在你直接把列名字符串传给了rgb()函数,它没法识别数据框里的列值。得先把每一行的RGB数值转换成对应的颜色代码,再用这个代码来着色。

步骤如下:

  • 先给你的空间数据框新增一列,比如叫fill_color,用rgb()函数把每行的RED、GREEN、BLUE值转换成颜色字符串。注意RGB值如果是0-255的整数,要除以255转成0-1的范围(这是rgb()函数要求的输入范围):
YGS_GLGY$fill_color <- rgb(red = YGS_GLGY$RED/255, 
                           green = YGS_GLGY$GREEN/255, 
                           blue = YGS_GLGY$BLUE/255)
  • 然后在tmap里调用tm_polygons时,指定fill为这个新列,同时设置palette = NULL,这样tmap就会直接使用我们生成的颜色,不会自动生成调色板:
tm_shape(YGS_GLGY) + 
  tm_polygons(fill = "fill_color", palette = NULL) + 
  tm_borders()

如果你的RGB值本来就是0-1的小数,那就不用除以255,直接用就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 00:02:02