在ggplot图表中使用AsIs颜色

时间:2015-08-27 20:17:33

标签: r ggplot2

我正在查看The right way to plot multiple y values as separate lines with ggplot2以获得正确的语法,以便为同一个X提供多个Y.我能够正确地执行此操作(在这种情况下,我实际上使用了提交者的格式,因为我只想要一个额外的Y所以它就这么简单了。

我的麻烦在于我想将两条线设置为不同的颜色,我想指定颜色(即color = I('blue')),但这样做会导致错误

Don't know how to automatically pick scale for object of type AsIs. Defaulting to continuous Error: Discrete value supplied to continuous scale

我的代码如下:

ggplot(aes(x = age), data = by_age) +
  geom_line(aes(y = friend_mean, color = "blue")) +
  geom_line(aes(y = friend_med))

这会导致一条线被着色,但不会以指定的颜色显示,并且它会将"blue"应用为标签。

那么我如何使用定义的静态颜色(红色,蓝色,绿色等)在ggplot中设置颜色?

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要做的就是将color=参数放在aes(...)之外。

应该映射的变量适合aes(...)(例如,包含三个不同值的名为“color_column”的数据帧列在使用美学函数时可以映射到三种不同的颜色,如aes(color = color_column) ),应该是静态的,并且您希望有一个定义的固定值(例如color = "red")的值位于aes(...)之外。 (这是一个广泛的解释。)