首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >特定值的固定颜色

特定值的固定颜色
EN

Stack Overflow用户
提问于 2012-05-04 01:04:42
回答 2查看 3.5K关注 0票数 5

我正在试着做一个温度图,所有的工作都很好,但我不知道如何有一个固定的调色板。

实际上我有这个:

代码语言:javascript
运行
复制
rgb.palette <- colorRampPalette(c("blue","green","yellow","orange","red"), 
                                space = "Lab")

image.plot(akima.smooth, 
           col = rgb.palette(NBR.COLORS), 
           main=main_title, 
           horizontal=TRUE,
           axes=TRUE)

此解决方案有效,但绘制的颜色总是从蓝色到红色。

例如,如果地图上的最低温度是-10°C,则颜色将是蓝色,但在另一张地图中,如果最低温度是+25°C,则颜色也将是蓝色。

如何定义固定颜色面板,例如:

代码语言:javascript
运行
复制
-30°C => blue
-20°C => light blue
-10°C => dark green
  0°C => green
 10°C => yellow

如果在图1中最低温度是-20,我想要“浅蓝色”,而在图2中,如果最低温度是10°C,我想要“黄色”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-04 14:48:54

我使用了这个解决方案:

代码语言:javascript
运行
复制
col = colorRampPalette(c("darkmagenta","blue","green","yellow","orange","red"),
                       space="Lab")(NBR.COLORS) 
breaks = c(seq(-35, 10, length.out=NBR.COLORS/2), 10, 
           seq(10, 35, length.out=NBR.COLORS/2))
image.plot(akima.smooth, col=col, breaks=breaks, main=main_title,
           horizontal=TRUE,axes=TRUE);
票数 2
EN

Stack Overflow用户

发布于 2012-05-04 04:29:03

如果这是fields:::image.plot(),请参见?image函数的参数。特别是,需要使用breaks参数来设置分割点边界的值,这些分割点用于将输入数据分成用于绘图的类。

您看到的问题是,如果您不设置breaks,那么调色板将应用于输入数据的范围。如果设置为breaks,则调色板将映射到所需的整个范围,并将数据分配给组,从而由断点定义颜色。

我没有包含一个示例,以防这不是fields:::image.plot()

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10436091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档