我想根据一列中的值使散点图圆圈着色。
"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
我已经准备好了我的绘图,y轴上有盐度,x轴上有温度。
plot(df$avg.sal, df$avg.temp)
如何根据"值"列对圆圈进行着色(例如从浅蓝色到深蓝色)?这些值的范围很大,但较小的值(例如 2)应为浅蓝色,较大的值(例如 10)应为深蓝色。我宁愿不使用GGplot。
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))] )
回答后续问题。当在向量中指定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))] )