我有 39 个物种的箱线图及其分布范围的年温度值 (bio01
)。中值位于 boxplot$stats
的第 3 行。我想将最高中值着色为红色,将最低中值着色为蓝色,即温度梯度。下面的 medcol
代码不起作用。有人可以提出解决方案吗?
b <- boxplot(bio01 ~ species, data=species.threshold.22.climate.751, las=2, ylab ="bio01", par(mar = c(18, 5,5, 2)+ 0.1), cex.names=0.2, bw = 5, medcol=b$stat[3,])
b$stats
最佳答案
这应该会让您走上正确的道路:
# Dummy data
x = data.frame(col1=rep(month.abb, 20), col2=rnorm(20*12))
# develop colour gradient
cols = colorRampPalette(c("blue", "red"))
# Calculate medians
m = unname(tapply(x$col2, x$col1, median))
# Plot and colour by size of median
boxplot(col2 ~ col1, x, col=cols(length(unique(x$col1)))[findInterval(m, sort(m))])
输出:
感谢One colour gradient according to value in column scatterplot in R获取间隔帮助。
关于R - 带有中值温度颜色的箱线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26801611/