我试图了解在R中使用ggplot2时如何更改图例中的标题和标签。我在网上搜索试图找到答案,似乎我需要在scale_xxx_yyy
命令中使用某种程度上,但我似乎无法做到这一点。一个简单的例子:
x <- rnorm(100)
dens1 <- density(x, 0.1, kernel = "rectangular")
dens2 <- density(x, 0.1, kernel = "gaussian")
df <- data.frame(x = dens1$x, y1 = dens1$y, y2 = dens2$y)
pl <- ggplot(df, aes(x)) + geom_line(aes(y=y1, colour = "y1")) + geom_line(aes(y=y2, colour = "y2"))
pl + scale_fill_discrete(name="Kernels", breaks=c("y1", "y2"), labels=c("Rectangular", "Gaussian"))
我希望传奇有标题&#34; Kernels&#34;和标签&#34;矩形&#34;和&#34;高斯&#34;,但没有任何反应。我还尝试了其他地方建议的scale_linetype_discrete(name = "Kernels")
和labs(linetype="Kernels")
,但仍然没有。
我做错了什么?
答案 0 :(得分:1)
试试这个。正如@Pascal所说,scale_color_discrete
是适合你的。我想你ggplot2越多,你就越习惯scale_xxx_yyy业务。 @ A.Val建议的食谱是一本很棒的书。以下是the link
library(dplyr)
library(tidyr)
library(ggplot2)
df <- data.frame(x = dens1$x, y1 = dens1$y, y2 = dens2$y) %>%
gather(variable, value, - x)
ggplot(df, aes(x = x, y = value, color = variable)) +
geom_line() +
scale_color_discrete(name = "Kernels", breaks=c("y1", "y2"), labels =c("Rectangular", "Gaussian"))