我有以下代码:
library(tidyverse)
data1 %>%
gather(key, value) %>%
ggplot(aes(value, color=key)) +
stat_ecdf(size=0.8) + xlim(-4.5,4.5) +
labs(x = "t(α)", y = "Probability", color="Legend", labels=c("Actual","Simulation"))
产生以下输出:
我的问题是我想保留当前ggplot主题(theme_gray)的颜色,但同时能够手动设置图例/标签名称。我知道泰勒先生写的类似question。但是,标记为最有用的答案是手动定义颜色。在这个项目中,我将拥有多个函数的图,因此我希望ggplot只使用其内置主题的颜色,以便在整个项目中保持颜色一致。
我尝试了
的版本scale_colour_manual(values=c("color1","color2"), labels=c("Label1","Label2")
但我无法在不必定义颜色的情况下命名传说。
提前感谢您的帮助!
答案 0 :(得分:1)
您可以使用scale_color_discrete(labels = ...)
。
library(ggplot2)
df <- data.frame(x = rep(1:10, 2), y = c(1:10, 6:15), leg = c(rep("A", 10), rep("B", 10)))
g <- ggplot(df, aes(x, y, color = leg)) +
geom_line()
g
g + scale_color_discrete(labels = c("Actual", "Simulation"))
但在大多数情况下,更改列中的值可能会更好。
library(dplyr)
df %>%
mutate(leg = recode(leg, `A` = "Actual", `B` = "Simulation"))
结果数据框:
x y leg
1 1 1 Actual
2 2 2 Actual
3 3 3 Actual
4 4 4 Actual
5 5 5 Actual
6 6 6 Actual
7 7 7 Actual
8 8 8 Actual
9 9 9 Actual
10 10 10 Actual
11 1 6 Simulation
12 2 7 Simulation
13 3 8 Simulation
14 4 9 Simulation
15 5 10 Simulation
16 6 11 Simulation
17 7 12 Simulation
18 8 13 Simulation
19 9 14 Simulation
20 10 15 Simulation