使用手动设置因子水平的顺序时,我无法同时使用geom_point和geom_line来按相同顺序绘制数据。
df <- data.frame(A=c(rep(c(5, 10, 15, 20, 25), 2)),
B=c(81, 86, 89, 94, 99, 81, 86, 89, 94, 100),
C=c(rep(0, 5), rep(1, 5)))
df$C <- factor(df$C, levels=c(1,0))
colors=c("red", "black")
ggplot(df, aes(A, B)) +
geom_point(aes(color=C)) +
geom_line(aes(color=C)) +
scale_color_manual(values=colors)
我希望最后绘制C的0,geom_line在做,而geom_point不是。我不明白为什么。我怎样才能让他们俩合作?如果我没有设置df $ C的因子水平,而是使用dplyr :: arrange(desc(C)),它仍然不能解决差异。
我正在使用自己的调色板,但是即使使用默认颜色,也会出现此问题。
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以更改进来的颜色
library(tidyverse)
colors=c("black", "red")
data.frame(A = c(rep(c(5, 10, 15, 20, 25), 2)),
B = c(81, 86, 89, 94, 99, 81, 86, 89, 94, 100),
C = c(rep(0, 5), rep(1, 5))) %>%
mutate(C = factor(C)) %>%
arrange(C) %>%
ggplot(aes(A, B, color=C)) +
geom_point() +
geom_line() +
scale_color_manual(values=colors) +
guides(color = guide_legend(reverse=TRUE))