尝试为ggplot创建的各个构面上的文本定义手动颜色。但是代码分配了随机的颜色。
我已经包含了我尝试获得正确颜色的代码。
library(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
facet_grid(. ~ cyl) +
theme(panel.spacing = unit(1, "lines"))
dat_text <- data.frame(
label = c("4 cylinders", "6 cylinders", "8 cylinders"),
cyl = c(4, 6, 8),
cl = c("red", "blue", "black"),
x = c(20, 27.5, 25),
y = c(4, 4, 4.5)
)
p + geom_text(
data = dat_text,
mapping = aes(x = x, y = y, label = label, colour= cl)
)
该代码正常工作,只是它提供随机颜色而不是指定的颜色。
答案 0 :(得分:4)
使用scale_color_manual
手动设置颜色:
dat_text <- data.frame(
label = c("4 cylinders", "6 cylinders", "8 cylinders"),
cyl = c(4, 6, 8),
cl = c("A", "B", "C"),
x = c(20, 27.5, 25),
y = c(4, 4, 4.5)
)
p + geom_text(
data = dat_text,
mapping = aes(x = x, y = y, label = label, colour= cl)
) +
scale_color_manual(values = c("red","blue","black"))
请注意,顺序是级别的字母顺序,这就是为什么我将级别设置为A,B,C。
您可能不需要文字说明,因此将其删除:
p + geom_text(
data = dat_text,
mapping = aes(x = x, y = y, label = label, colour= cl), show.legend = FALSE
) +
scale_color_manual(values = c("red","blue","black"))
答案 1 :(得分:0)