2012-01-04 10 views
9

私はそれに余分なデータを持つ棒グラフを作ろうとしています。各データポイントには、なぜ高さが何であるかを示す因子の値が関連付けられています。これまでのところ、私は私の結果と合理的に満足している: example outputgeom_point {ggplot2}を使用して、凡例に円を描くことなく棒の端にポイントを得る方法?

問題は、それが分析のための凡例にこれらの無意味な円を置くことである:

library(ggplot2) 

tab <- read.table("http://www.cs.colorado.edu/~coxaj/table2.csv", 
      header=T, sep=",", strip.white=T) 
tab <- with(tab, tab[order(Analysis, -as.numeric(Analysis)), ]) 

bar_width <- 0.5 
space_width <- 0.8 

p <- ggplot(tab, aes(x=Filter,y=Depth,fill=Analysis)) + 
    geom_bar(position=position_dodge(width=space_width), width=bar_width) + 
    geom_point(position=position_dodge(width=space_width), aes(shape=Termination)) + 
    scale_shape_manual(values=c(1,4,5,6)) + 
    geom_hline(aes(yintercept=16, linetype=2)) + 
    scale_x_discrete(name='') + 
    scale_y_continuous(name='Search Depth') + 
    scale_fill_manual(values=c("#E66101", "#FDB863", "#B2ABD2", "#5E3C99")) + 
    theme_bw() 

ggsave(filename='table2.pdf', height=3, width=8) 

これは、このようになりますプロットを作成します。そのサークルを削除したいと思いますが、伝説は残しておきます。 ggplot2は私にこれをさせるのですか?

+0

私は塗りつぶし=分析は、全てのプロットに適用されることになりggplotコールでAESから塗りつぶし=分析を削除しようとしています。そうすることで問題は解決されますが、別の問題が発生します。バーの端にある点は、xaxisカテゴリ内で半ランダムにシャッフルされます。 –

答えて

18

はこれを試してみてください。

p <- ggplot(tab, aes(x=Filter,y=Depth)) + 
    geom_bar(aes(fill = Analysis), 
      position=position_dodge(width=space_width), width=bar_width) + 
    geom_point(position=position_dodge(width=space_width), 
      mapping = aes(group = Analysis, shape=Termination)) + 
... 

enter image description here

+0

うわー!ありがとう。簡単な修正。 –

関連する問題