在由以下代码生成的图中,我想改变颜色,使得所有值<0.6与"低"颜色相同,并且所有大于1的值都是"高"颜色.
按原样,颜色梯度在数据的整个数值范围内延伸.我已经尝试添加限制但是这使得所有越界值都与NA值相同,这不是我想要的,因为我需要缺少NA值以明确地伸出并且看起来不同于超出边界值<0.6的相同颜色.
我确信答案是关于oob,打破了争论,但没有成功让它发挥作用.
library(ggplot2)
a = rnorm(17*17, 0.733,0.21)
qcMat = matrix(a, ncol = 17)
qcMat[qcMat> 1] = 1
#qcMat contains values between 0 and 1 and some NAs
m = melt(t(qcMat))
m$Var2 <- with(m,factor(Var2, levels = rev(sort(unique(Var2)))))
ggplot(m, aes(as.factor(Var1), Var2, group=Var2)) +
geom_tile(aes(fill = value)) +
geom_text(aes(fill = m$value, label = round(m$value, 2))) +
scale_fill_gradient(low = "red", high = "green") +
xlab("") + ylab("") + ggtitle(paste("biscuit:", biscuit_id, "- QC", sep = " "))
Run Code Online (Sandbox Code Playgroud)
Ste*_*yer 24
正如你自己所说,你想要的oob论点scale_fill_gradient.要钳制值,您可以使用scale包中的挤压(scales安装时ggplot2安装):
library(scales)
Run Code Online (Sandbox Code Playgroud)
然后
scale_fill_gradient(low = "red", high = "green", limits=c(0.6, 1), oob=squish)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8916 次 |
| 最近记录: |