我正在尝试创建一个在某一点具有鲜明颜色过渡的色标。我目前正在做的是:
test <- data.frame(x = c(1:20), y = seq(0.01, 0.2, by = 0.01))
cutoff <- 0.10
ggplot(data = test,
aes(x = as.factor(x), y = y, fill = log(y), width = 1, binwidth = 0)) +
geom_bar(stat = "identity") +
scale_fill_gradientn(colours = c("red", "red", "yellow", "green"),
values = rescale(log(c(0.01, cutoff - 0.0000000000000001, cutoff, 0.2))),
breaks = c(log(cutoff)), label = c(cutoff))
它正在生成我想要的情节。但是颜色条中中断的位置以某种方式根据截止值而有所不同。有时低于值,有时高于值,有时在线。以下是一些具有不同截止值(0.05、0.06、0.1)的图:
我究竟做错了什么?或者,有没有更好的方法来创建这样的色标?
最佳答案
你看了吗scale_colour_steps或 scale_colour_stepsn ?
使用选项 n.break
来自 scale_colour_stepsn
您应该能够指定所需的中断次数并具有更清晰的过渡。
一定要使用 ggplot2 > 3.3.2
关于r - 如何在ggplot2中制作具有锐利过渡的色标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31499186/