2017-05-30 10 views
2

注:これはthis questionのフォローアップです。凡例からggplot2のgeom_pointアイコンを削除する

まずデータを再現するコード:

mydf <- data.frame(year = c(rep(2000, 3), rep(2002, 3), rep(2004, 3), rep(2006, 3), rep(2008, 3), rep(2010, 3), rep(2012, 3), rep(2014, 3), rep(2016, 3)), 
       answer = rep(c("A great deal", "Hardly any", "Only some"), 9), 
       result = c(0.3015940, 0.1399303, 0.5584757, 0.2269548, 0.1792754, 0.5937698, 0.2955301, 0.1309859, 0.5734840, 0.3008197, 0.1344499, 
                0.5647303, 0.1919454, 0.2026290, 0.6054256, 0.1059793, 0.4190533, 0.4749674, 0.1190636, 0.3631279, 0.5178085, 0.1518314, 
                0.3181203, 0.5300483, 0.1424715, 0.3094615, 0.5480669)) 
mydf$year <- factor(mydf$year) 
mydf$answer <- factor(mydf$answer) 

triangles <- data.frame(year = c(2002, 2004, rep(2008, 2), rep(2010, 3), 2012), 
         answer = c(rep("A great deal", 3), "Hardly any", "A great deal", "Only some", rep("Hardly any", 2)), 
         direction = c("Decrease", "Increase", "Decrease", "Increase", rep("Decrease", 2), "Increase", "Decrease"), 
         result = c(0.2269548, 0.2955301, 0.1919454, 0.2026290, 0.1059793, 0.4749674, 0.4190533, 0.3631279)) 
triangles$year <- factor(triangles$year) 
triangles$answer <- factor(triangles$answer) 
triangles$direction <- factor(triangles$direction) 

私は、次のggplot2のコードを実行しているとき、私はこれで終わる:

ggplot() + 
geom_line(data = mydf, aes(x = year, y = result, colour = answer, group = answer)) + 
geom_point(data = triangles, aes(x = year, y = result, fill = answer, shape = direction), size = 3) + 
scale_shape_manual(values = c(25, 24)) 

enter image description here

ここでの問題凡例のキーであるanswerを占める黒い点です。私は、次の層を使用して、それを削除しようとしました:

guides(fill = guide_legend(override.aes = list(size = 0))) 

そして、私はこれを取得:私はまだ凡例に小さな黒い点を取得しています

enter image description here

。それを完全に削除するために他に何ができますか?

+2

を行うことができます:'ガイド(色= guide_legend(override.aes =リスト(形状= NA) )) ')。 – eipi10

答えて

2

あなたは `colour`の伝説は線のみに影響するため、あなたができる

ggplot() + 
    geom_line(data = mydf, aes(x = year, y = result, colour = answer, group = answer)) + 
    geom_point(data = triangles, aes(x = year, y = result, fill = answer, shape = direction), size = 3) + 
    scale_shape_manual(values = c(25, 24), name = "direction") + 
    scale_color_discrete(name = "answer") + 
    scale_fill_discrete(name = "c", guide = "none") 

enter image description here

+0

ありがとう、それは法案に合うでしょう。ここで論理を説明できますか?私は 'scale_fill_discrete'関数がこれをどのように修正するのか理解していません。 – Phil

+1

Afaik、ggplot2はスケールを同じ名前(通常はマップされた変数名)で結合しようとします。ここでは、明示的に尺度の名前を3つに変更するように名前を変更しました。私は第3のものを表示しないように指定しました。 – lukeA

関連する問題