根据R中列散点图中的值的一个颜色梯度

Bal*_*ala 2 gradient r colors scatter-plot

我想根据一列中的值使我的散点图圆圈着色.

"value"; "avg.sal"; "avg.temp"
2,5698; 34,27254; 4,44
5,4361; 34,30686; 4,64
2,27; 34,3538; 8,05
5,6015; 34,50136; 5,01
2,27; 34,37596; 7,4
Run Code Online (Sandbox Code Playgroud)

我的情节准备好了y轴上的盐度和x轴上的温度.

plot(df$avg.sal, df$avg.temp)
Run Code Online (Sandbox Code Playgroud)

如何根据列"值"对圆圈进行着色(例如从浅蓝色到深蓝色)?值的范围较大,但较小的值(例如2)应为浅蓝色,较大的值(例如10)应为深蓝色.我宁愿不使用GGplot.

42-*_*42- 7

dat <- read.delim(text='"value"; "avg.sal"; "avg.temp"
 2,5698; 34,27254; 4,44
 5,4361; 34,30686; 4,64
 2,27; 34,3538; 8,05
 5,6015; 34,50136; 5,01
 2,27; 34,37596; 7,4"', sep=";", dec=",")

bluefunc <- colorRampPalette(c("lightblue", "darkblue"))
plot( dat$avg.sal, dat$avg.temp, 
              col=bluefunc(5)[findInterval(dat$value, seq(2:6))] )
Run Code Online (Sandbox Code Playgroud)

回答后续问题.当cex在向量内指定时,它确实控制"点"的大小:

dat$size <- 1:5
bluefunc <- colorRampPalette(c("lightblue", "darkblue"))
plot( dat$avg.sal,  dat$avg.temp,
            cex=dat$size,
            col=bluefunc(5)[findInterval(dat$value, seq(2:6))] )
Run Code Online (Sandbox Code Playgroud)