2017-02-03 88 views
1

私はggplot2パッケージを使って切子箱を作成しました。 Rコードは次の通りです:R:ggplot boxplotの仕立て伝説は2つの別個の伝説を残す

version.labs <- c(`1`="Version 1.0", `2`="Version 2.0", `3`="Version 3.0", `4`="Version 4.0", `5`="Version 5.0") 
ggplot(df, aes(x=factor(Subsystem), y=Risk.value, fill=factor(Version))) + 
    geom_jitter(position=position_jitter(width=0.3, height=0.2), aes(colour=factor(Version)), alpha=0.9) + 
    geom_boxplot(alpha = 0.5, show.legend = FALSE) + facet_grid(.~Version, labeller = as_labeller(version.labs)) + 
    theme(strip.text.x = element_text(size=9, color="black", face="bold")) 

結果のプロットは、凡例を除いてかなり良好です(下図参照)。私は各項目のタイトルだけでなく、テキストラベルを変更したいの伝説で

enter image description here

。タイトルは「バージョン」、ラベルは「バージョン1.0」、...、「バージョン5.0」でなければなりません。

私はさまざまな方法を試しましたが、すべて新しい凡例が追加されています。新しい伝説はいいようですが、古いものはまだ見えず、それを取り除く方法を見つけることができません。私が試した最後のものはこのように、scale_color_manual()関数を追加しました

scale_color_manual(name = "Version", labels=c("v1.0","v2.0","v3.0","v4.0","v5.0"), values=c("grey","blue","green","red","black")) 

これは、このように見える箱ひげ図になります。

enter image description here

を見ることができるように、2つの伝説があります。だから、シガーは近づいていない。これを解決する方法についてのヒントは高く評価されます。

+0

この例は再現性がありません。しかし、私はあなたが 'scale_color_manual'と' scale_fill_manual'の両方を必要とすると思います。 – Axeman

+0

コメントありがとうございます。私もそれを試み、それは問題を解決しませんでした。しかし、私はそれを別の解決法を使って解決しました。 –

答えて

1

私は問題を把握しました。それは、私のアウテスティックフィル機能aes()を一般にggplot()に置いたことでした。代わりにgeom_boxplot()に配置する必要があります。そうでない場合は、一般ggplot()geom_boxplot()の両方に凡例が追加されます。だから私はそれを修正し、guides()を使ってgeom_boxplot()凡例のタイトルを更新しました。完全なコードは次のようになります。

ggplot(df, aes(x=factor(Subsystem), y=Risk.value)) + 
    geom_jitter(position=position_jitter(width=0.3, height=0.2), aes(colour=factor(Version)), alpha=0.9) + 
    geom_boxplot(alpha = 0.5, show.legend = FALSE, aes(fill=factor(Version))) + facet_grid(.~Version, labeller = as_labeller(version.labs)) + 
    theme(strip.text.x = element_text(size=9, color="black", face="bold")) + 
    labs(x="Risk distribution per software version and subsystem type", y="Normalized risk value") + 
    guides(color=guide_legend("Version")) 

最後のプロットはこのように見えますが、これは私が満足しています。

Final plot

-1

凡例のグループ化と生成には、fill引数を使用しています。はscale_color_manualの代わりにscale_fill_manualを使用して既存の凡例を無効にすることができます

+0

提案していただきありがとうございます。 'scale_fill_manual(name =" Version "、labels = c(" v1.0 "、" v2.0 "、" v3.0 "、" v4.0 "、" v5.0 ")というコマンドで試してみました。 、値= c( "グレー"、 "青"、 "緑"、 "赤"、 "黒")) '結果は2番目のボックスプロット、すなわち2つの凡例とほぼ同じです: –