我正在尝试在 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) ))
Run Code Online (Sandbox Code Playgroud)
问题
使用该scale_color_gradientn()函数,我可以在线上应用颜色渐变。我想使用绿色表示 0 到 1.5 之间的值,黑色表示 1.5-2.5 之间的值,红色表示 2.5 及以上,但我似乎无法掌握该rescale()功能。在示例中,颜色在 y 值 4 处停止。
如何以所需的方式应用颜色渐变?
由于您没有提供色标上限的值/颜色对,因此这些值被解释为 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)))
Run Code Online (Sandbox Code Playgroud)

由reprex 包(v0.3.0)于 2020-04-24 创建
| 归档时间: |
|
| 查看次数: |
1695 次 |
| 最近记录: |