2017-06-16 54 views
2

我想使每个点图形上的从线不同的颜色更暗的颜色。这里是示例数据。GGPLOT2:使线路上的点比线颜色

df <- structure(list(yrmonth = structure(c(17167, 17167, 17167, 17198, 
17198, 17198, 17226, 17226, 17226, 17257, 17257, 17257), class = "Date"), 
    index = structure(c(2L, 1L, 3L, 2L, 1L, 3L, 2L, 1L, 3L, 2L, 
    1L, 3L), .Label = c("E-W", "N-S", "OS"), class = "factor"), 
    N = c(2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1), data = c(129, 
    141, 27, 150.5, 209, 87, 247.5, 243, 188, 223, 226.5, 170 
    )), .Names = c("yrmonth", "index", "N", "data"), row.names = 31:42, class = "data.frame") 

这是我的剧情代码。

df$yrmonth <- lubridate::ymd(df$yrmonth) 

ggplot(df, aes(x=yrmonth,y=data,colour=factor(index), group=index)) + 
    geom_line(size=.4) + 
    geom_point(size=1) 

我想绿点是一个更深的绿色,橙色的点是一个更暗的橙色等等。

+0

一个快速的解决办法是使用'geom_line(大小= 0.4,α-= 0.5)',这使得线条更透明的,因此它看起来像点是暗。 – user3640617

回答

3

你可以使用一个充满点标记(形状21〜25),这将允许您从线条的颜色分别设置填充颜色的点。在下面的代码,我使用的点和线相同的色调(在h参数传递给hcl功能),但对于点的较低亮度(与l参数hcl),这样它们会比线暗。我还增加了线条和磅值,使其更容易看出差异。

ggplot(df, aes(x=yrmonth,y=data)) + 
    geom_line(size=1, aes(colour=factor(index))) + 
    geom_point(size=3, aes(fill=factor(index)), shape=21, colour="#FFFFFF00") + 
    scale_colour_manual(values=hcl(seq(15,375,length=4)[1:3], 100, 70)) + 
    scale_fill_manual(values=hcl(seq(15,375,length=4)[1:3], 100, 40)) + 
    theme_classic() + 
    labs(colour="Index", fill="Index") 

enter image description here

+0

这是正确的吗?当我在我的机器上运行它,点有黑色圆圈周围 – lebelinoz

+1

填充点标记有两种边框和填充。 'stroke = 0'应该摆脱边界。如果你改变'行程= 0'到'颜色=“#FFFFFF00”',这是否摆脱了点周围的黑圈的? – eipi10

+0

是的。谢谢。 – lebelinoz