我想根据值>为我的情节提供不同的颜色(颜色范围)。 5和值< -5和它们之间的值。与附图一样,在图像中只有2种颜色,超过5 /少于5,它们之间的值。
我的代码是:
ggplot(data, aes(S1, S2, color=abs(S1-S2)>5 )) +geom_point()+ smoother
答案 0 :(得分:1)
以下是在ggplot
:
set.seed(1)
df = data.frame(x = rnorm(1000,1,10))
df$y = df$x + rnorm(1000,1,5)
df$col = NA
df$col[(df$x - df$y) > 5] = "g1"
df$col[(df$x - df$y) < 5 & (df$x - df$y) > -5] = "g2"
df$col[(df$x - df$y) < -5] = "g3"
ggplot(df, aes(x, y, color = col)) + geom_point()
EDIT
如果要标记具有观察次数的图例,请选择颜色:
library(plyr)
df_labels = ddply(df, "col", summarise, n = n())
ggplot(df, aes(x, y, color = col)) + geom_point() +
scale_color_manual(labels = df_labels$n, values = c("g1" = "red", "g2" = "blue", "g3" = "green"))
答案 1 :(得分:0)
确保您的颜色计算得到3个值的结果:
ggplot(data, aes(S1, S2, color=factor(ifelse(S1-S2>5,1,ifelse(S2-S1>5,2,4)) , labels = c("less","more","same")))) +geom_point()
或者在绘图之前在脚本的另一个步骤中进行此操作。