2014-02-19 140 views
0

当我使用AES颜色像这样ggplot2中的颜色参数和aes颜色有什么不同?

ggplot(data=olympia,aes(x=year)) + geom_line(aes(y=gold,colour="red")) + geom_line(aes(y=silver,colour="blue")) 

这是行不通的。

如果我使用的颜色参数它显示红色和蓝色的正确的颜色

ggplot(data=olympia,aes(x=year)) + geom_line(aes(y=gold),colour="red") + geom_line(aes(y=silver),colour="blue") 

有什么不同? 有什么错?

数据帧

year gold silver 
1 2002 12  16 
2 2006 11  12 
3 2010 10  13 
4 2014 8  3 
+0

嗯,它在第一个和第二个是“银色”拼写。据推测,你的'奥林匹亚'数据集的单词'银'拼错为'silber'(你应该显示数据集来证实这一点)。 –

+0

银是正确的。 – Gerhard

+2

请问你可以把dput(head(奥林匹亚))的结果显示出来(编辑成问题而不是放在评论中) –

回答

2

所不同的是,当你在aes提供的颜色参数,它把它作为一个因素,并试图将每个因子水平均有它会以同样的方式映射到一个颜色(如果你给c("USA", "USA", "Russia", "Russia") - 它不会将它们视为文字颜色)。

相比之下,当您将颜色直接给予geom_line时,它会将其作为实际颜色。您可以在文档中看到这样的geom_line

Usage: 

     geom_line(mapping = NULL, data = NULL, stat = "identity", 
     position = "identity", ...) 
<snip> 

    ...: other arguments passed on to ‘layer’. This can include 
      aesthetics whose values you want to set, not map. See ‘layer’ 
      for more details. 

通知“你想设置,不映射其值”。