1

我的查询是参考这个代表:

d1 <- data.frame(index= 1:100,x=1:100,x_hat= 1:100+ rnorm(100))

ggplot(data = d1 ) + 
 geom_line(aes(x=index,y=x,color="True X")) +  
 geom_line(aes(x=index,y=x_hat,color="Estimated X")) + 
 scale_x_continuous(name = "" ) + 
 ylab("")

代码正在做我想让它做的事情,但我不知道它是如何做到的。当我说 color = "True X" 时,我认为它正在动态生成一个变量,它是一个常数。

那是对的吗 ?它是如何工作的?有人能就此说几句吗?这种方法的美妙之处在于它会自动创建一个正确的图例。

4

1 回答 1

0

你的直觉基本上是正确的。在每个中指定一个字符串常量geom_line是告诉ggplot2以默认颜色绘制线条并添加一个标有您在 之后指定的任何字符串的图例color =。如果您在两个几何图形中指定了相同的字符串(例如color = "True X"),您将只得到一条带有红色默认颜色的行,以及只有一个标签的图例。换句话说,每个唯一的字符串常量都在告诉 ggplot 以不同的颜色绘制相应的线,并为图例添加标签。

如果您想进一步自定义,您可以添加scale_color_manual对 ggplot 的调用。例如, scale_color_manual("Type of X", values = c("blue", "red"))为图例添加适当的标题并将两条线的颜色更改为您想要的任何颜色(在本例中为蓝色和红色)。

于 2018-08-02T06:44:31.217 回答