2017-06-16 3 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)を使用すると、点の塗りつぶし色を線の色とは別に設定できます。以下のコードでは、ポイントとラインについては同じ色相(引数)を使用しますが、ポイントよりも暗くなるようにポイントの輝度を低くします(を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'は境界線を取り除くことになっています。 'stroke = 0'を' color = "#FFFFFF00" 'に変更すると、点の周りの黒丸が取り除かれますか? – eipi10

+0

はい。ありがとうございました。 – lebelinoz

関連する問題