我想创建1950 - 1124年的对数全球温度异常(记录和投影),对数为10时标,为黄色 - 红色渐变色。
基于对this question的回答,我已经能够创建一个或多或少是我的目标颜色条,除了时间尺度是线性的,而不是对数的。
这是我使用的代码,带有虚拟矢量数据集。
temps<-rnorm(165)
scaled_temps <- (temps - min(temps)) / diff(range(temps))
FUN <- colorRamp(c("yellow","red"))
cols <- FUN(scaled_temps)
rgb(cols, maxColorValue=256)
my.colors = colorRampPalette(c(rgb(cols, maxColorValue=256)))
z=matrix(1:165,nrow=165)
y=1
x=seq(1950, 2114,len=165)
image(x,y,z,col=my.colors(165),axes=FALSE,xlab="",ylab="")
axis(1)
有关如何在对数刻度上绘制此图的任何想法?鉴于每年的颜色不具有固定的宽度,使用matrix
和image
可能不是可行的方法。
任何意见都会受到赞赏。
答案 0 :(得分:0)
我应该更仔细地阅读image
的帮助文件。我将x=seq(1950, 2114,len=165)
替换为log10转换年份值的向量(在以前的csv中):
-LOG10(YBP)在2014年之前的年份,
和
2014年后的Log10(YBP)
其中YBP = 2014- [年]
因为2014年和2015年的对数转换值需要略微捏造(以防止当前未定义的值并保持x参数的网格线的升序)。 (不可取,但我的目的可以接受。)如果没有这种捏造,2013年,2014年和2015年的对数转换年份序列将是
0,未定义,0
来自image
帮助文件:
x参数 - 测量z中的值的网格线的位置。这些必须是有限的,非缺失的并且是(严格地)提升顺序。默认情况下,使用等间距值从0到1。