根据geom_point和geom_line更改ggplot2中的图例样式

时间:2014-08-31 01:06:33

标签: r ggplot2

我正在使用ggplot2开发一个图形来显示趋势。我的数据框D有3个变量Season,variable,value。我的数据框具有下一个结构(我在最后部分添加dput()版本):

     Season variable      value
1      I1   Energy 0.01278667
2      I2   Energy 0.01260430
3      I3   Energy 0.01228117
4      I4   Energy 0.01328996
5      I5   Energy 0.01299958
6      I6   Energy 0.01201685
7      I7   Energy 0.01189642
8      I8   Energy 0.01217838
9      I9   Energy 0.01233255
10    I10   Energy 0.01232536
11    I11   Energy 0.01258488
12    I12   Energy 0.01281201
13    I13   Energy 0.01300705
14    I14   Energy 0.01240693
15    I15   Energy 0.01252280

然后我使用下一代码来构建我的图表:

library(ggplot)
colors=c("red")
k <- ggplot(D, aes(x=Season, y=value,colour=variable))+ scale_color_manual(values=colors)
k <- k + geom_line(aes(group=variable),size=1.3)
k <- k + geom_point(aes(colour=variable, group=variable),size=3.8,color="white")
k <- k + geom_point(shape = 1,size = 3.8,colour = "red",pch=21)

我得到了这个结果:enter image description here

正如你所看到的,图形中的线条有一个带红色圆圈的白点,但在图例中我只能得到红线,我想在图例中用红线获得相同的样式,白色点和最后的红色圆圈,但我尝试使用scale_fill_manual()scale_shape_manual()而没有预期的结果。 dput()的{​​{1}}版本是下一个:

D

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

不是绘制两组点,而是使用形状21-25来获得填充的形状。这允许您分别设置填充和颜色。例如

ggplot(D, aes(x=Season, y=value, color=variable))+ 
    geom_line(aes(group=variable),size=1.3) +
    geom_point(size=3.8, shape=21, fill="white") + 
    scale_color_manual(values=colors)

返回

enter image description here