在ggplot中手动缩放一个因素的颜色
manually scale color of a factor in ggplot
假设我有一个这样的数据框
id password year length Something
1 1234567 2001 7 good
2 pass4 2001 5 bad
3 angel3 2003 6 bad
4 pizza 2004 5 ok
我试图获得一个代码来创建一个 geom_point 和 3 个变量,但我只想突出显示因子 ''Something'' 的一个水平。而且我不希望任何其他级别的因素(如好或坏)着色。或者至少他们可以保持黑色。
我在想也许是这样的:
graph <- dat %>%
ggplot(aes(x=(year), y=length, color=Something$ok)+
geom_point()
但我不能使用 $ .
您可以只为一个点着色,方法是将所有点设置为一种颜色并更改要更改的点的颜色。为此,您可以使用 scale_color_manual
数据:
dat <- structure(list(id = 1:4, password = structure(c(1L, 3L, 2L, 4L
), .Label = c("1234567", "angel3", "pass4", "pizza"), class = "factor"),
year = c(2001L, 2001L, 2003L, 2004L), length = c(7L, 5L,
6L, 5L), Something = structure(c(2L, 1L, 1L, 3L), .Label = c("bad",
"good", "ok"), class = "factor")), class = "data.frame", row.names = c(NA,
-4L))
剧情:
dat %>%
ggplot(aes(x=(year), y=length, color = Something == "ok"))+
geom_point() +
scale_color_manual(values = c("blue", "orange"))
假设我有一个这样的数据框
id password year length Something
1 1234567 2001 7 good
2 pass4 2001 5 bad
3 angel3 2003 6 bad
4 pizza 2004 5 ok
我试图获得一个代码来创建一个 geom_point 和 3 个变量,但我只想突出显示因子 ''Something'' 的一个水平。而且我不希望任何其他级别的因素(如好或坏)着色。或者至少他们可以保持黑色。
我在想也许是这样的:
graph <- dat %>%
ggplot(aes(x=(year), y=length, color=Something$ok)+
geom_point()
但我不能使用 $ .
您可以只为一个点着色,方法是将所有点设置为一种颜色并更改要更改的点的颜色。为此,您可以使用 scale_color_manual
数据:
dat <- structure(list(id = 1:4, password = structure(c(1L, 3L, 2L, 4L
), .Label = c("1234567", "angel3", "pass4", "pizza"), class = "factor"),
year = c(2001L, 2001L, 2003L, 2004L), length = c(7L, 5L,
6L, 5L), Something = structure(c(2L, 1L, 1L, 3L), .Label = c("bad",
"good", "ok"), class = "factor")), class = "data.frame", row.names = c(NA,
-4L))
剧情:
dat %>%
ggplot(aes(x=(year), y=length, color = Something == "ok"))+
geom_point() +
scale_color_manual(values = c("blue", "orange"))