使用R添加依赖于值的颜色渐变到绘图

时间:2014-09-25 07:31:47

标签: r plot

我有四个非常简单的示例向量:

a<-c(1,3,5,7,9)
b<-c(1,2,3,4,5)
c<-c(1,1.8,2.6,3.4,4.2)
d<-c(1,1.5,2,2.5,3)

我已经绘制了矢量a并使用lines()添加了其余的矢量,就像这样

plot(a,type="l")
lines(b,type="l")
lines(c,type="l")
lines(d,type="l")

现在我有了这个基本图表

enter image description here

我希望通过实现颜色渐变来改变线条的颜色,例如从淡粉色到深红色。

我有一个矩阵,其中绘制了相同的样本,但其值与绘图无关。

Sample    Value
a         634
b         473
c         573
d         124

所以我的问题是:如何在绘图中添加颜色渐变,以便样本的值决定颜色的色调,以便矩阵值列中的较高值为相应样本的行着色在更深的红色?

我对R的基本熟练程度使我有了一个点,我在图像中描绘了情节,但我缺乏开始产生颜色渐变的代码所需的专业知识。

Gradient of n colors ranging from color 1 and color 2我发现这有一些帮助,但我真的不知道如何以我的问题所指的方式应用这些知识。

非常感谢所有帮助。提前谢谢。

-Olli J

1 个答案:

答案 0 :(得分:3)

尝试:

dd = data.frame(a,b,c,d)

colvalue
  Sample Value
1      a   634
2      b   473
3      c   573
4      d   124

colvalue$scaledvalue = with(colvalue, (Value-min(Value))/ (max(Value)-min(Value)) )
colvalue
  Sample Value scaledvalue
1      a   634   1.0000000
2      b   473   0.6843137
3      c   573   0.8803922
4      d   124   0.0000000

plot(a,type="n")
dd = data.frame(a,b,c,d)
for(i in 1:length(dd)){
    lines(dd[i], type='l', col = rgb(colvalue$scaledvalue[i],0,0))
}

enter image description here