我正在尝试在R中的一行上应用三种颜色(即绿色,黑色,红色)的颜色渐变。
示例代码
# Create sample dataframe
df <- data.frame(x = seq(0, 15 , 0.001),
y = seq(0, 15, 0.001))
# Plot data
ggplot(df, aes(x=x, y=y, col = y)) +
geom_line() +
scale_color_gradientn(colours = c("green", "black", "red"),
values = rescale(x = c(0, 2, 4), to = c(0,1), from = c(0, 15) ))
问题
使用scale_color_gradientn()
函数,我可以在行上应用颜色渐变。
我想将绿色用于0和1.5之间的值,将黑色用于1.5-2.5之间的值,将红色用于2.5及以上的值,但是我似乎无法掌握rescale()
函数。在示例中,颜色停止在y值为4处。
如何以所需的方式应用颜色渐变?
答案 0 :(得分:2)
由于您没有提供色标上限的值/颜色对,因此这些值被解释为NA并变为灰色。解决这个问题应该和提供上限一样容易。
library(ggplot2)
library(scales)
#> Warning: package 'scales' was built under R version 3.6.3
df <- data.frame(x = seq(0, 15 , 0.001),
y = seq(0, 15, 0.001))
# Plot data
ggplot(df, aes(x=x, y=y, col = y)) +
geom_line() +
scale_color_gradientn(colours = c("green", "black", "red", "red"),
values = rescale(x = c(0, 2, 4, 15), from = c(0, 15)))
由reprex package(v0.3.0)于2020-04-24创建