2017-10-24 22 views
2

私は次のデータフレームとプロットを持っています。プロットの凡例では、ポイントのシェイプは表示されず、線も太すぎます。これを修正する方法はありますか?ggplotの凡例に正しく表示されるラインタイプ

library(ggplot2) 
library(ggalt) 

x <- rnorm(100) 
y <- rnorm(100) 
group <- rep(c("A","B","C","D"), 25) 
dat <- data.frame(x,y,group) 

ggplot(dat, aes(x=x, y=y, shape=group, color=group)) + 
    geom_point() + 
    geom_encircle(data=subset(dat, group=='A'), aes(x=x,y=y),size=2, linetype=2) + 
    geom_encircle(data=subset(dat, group=='B'), aes(x=x,y=y), size=3, linetype=3) + 
    geom_encircle(data=subset(dat, group=='C'), aes(x=x,y=y),size=4, linetype=4) + 
    geom_encircle(data=subset(dat, group=='D'), aes(x=x,y=y)) 

enter image description here

+0

'?guides' /'?guide_legend'( 'override.aes'をヒント)::また、' ggalt'スピンを与えるため#tyを! – hrbrmstr

+0

例を挙げてください。私はこれらがどのように使われているのか分かりません。 –

+3

geom_point()+ geom_encircle(aes(size = group、linetype = group))は、次の呼び出しを簡略化した場合: 'ggplot(dat、aes(x = x、y = y、shape = group、color = group))+ geom_point ))+ scale_size_discrete(ブレーク= c( "A" = 2、 "B" = 3、 "C" = 4、 "D" = 1))これはあなたが望むものを得るでしょうか?ラインのサイズは表示されませんが、色とポイントのタイプは –

答えて

2

のではなく、すべて同じ凡例にサイジングで遊ぶ、それは別の伝説にあなたの形状や線種を分割するのが最も簡単かもしれません。正確にはあなたが探していたものではありませんが、それは良いと思います。


library(ggplot2) 
library(ggalt) 

x <- rnorm(100) 
y <- rnorm(100) 
group <- rep(c("A","B","C","D"), 25) 
dat <- data.frame(x,y,group) 

ggplot(dat, aes(x=x, y=y, shape=group, color=group)) + 
    geom_point() + 
    geom_encircle(aes(size=group, linetype = group)) + 
    scale_size_manual(values=c("A" = 2, "B" = 3, "C" = 4, "D" = 1)) + 
    scale_shape_discrete(name = 'Shapes') + 
    scale_color_discrete(name = 'Linetypes') + 
    scale_linetype_discrete(name = 'Linetypes') + 
    guides(shape = guide_legend(override.aes = list(size = 3)), 
     linetype = guide_legend(override.aes = list(shape = NA)), 
     size = FALSE) + 
    theme(legend.key.size = unit(1, 'cm'), 
     legend.box = 'horizontal') 

+0

私が探しているものではありませんが、よく見えます。 –

+0

良い努力...色は線種と形状の両方に使用されますが、これは凡例には反映されません。 – PatrickT

関連する問題