3

geom_...色の凡例を含むプロットがあり、それに合計/平均シリーズを追加したいと考えています。

例えば:

d <- ggplot(data=mtcars, aes(x=cyl, y=mpg, color=factor(vs))) + geom_point()
d + stat_summary(fun.y = "mean", fun.ymin = "mean", fun.ymax = "mean", colour = "black")

プロット例

合計geom_の色を黒にして (私の例では機能しています)、凡例に「合計」のラベルを付けたいと思います (例にはありません)。新しい「合計」ラベルは、凡例の最後の値である必要があります。

この例では、vs の因子レベルは 0 と 1 です。

  1. 多くの因子レベルがあるため、凡例の色/ラベルを手動で操作する必要のないソリューションを探しています。
  2. 「合計」は当然、このデータ セットでは最後になりますが (アルファベット順で 0 と 1 の後に来るため)、私のデータ セットでは真ん中のどこかに来ます。では、要因を並べ替える必要があるのでしょうか? このデータセットの例では、ラベルを並べ替える方法を示すために、「合計」を最初にリストする必要があると想定しています。

最後にstat_summary、平均を正しく計算できない場合があるため、2 番目のデータ セットを使用して平均または合計を手動で計算できる柔軟性が欲しいです。例えば:

d + geom_point(data = as.data.table(mtcars)[, list(avg = mean(mpg)), by = "cyl"] ... )
4

1 に答える 1

4

1 つのアプローチは、合計で別の未使用の geom をオーバーライドすることです。この関連する質問に対する答えは次のとおりです。

d <- ggplot(data=mtcars, aes(x=cyl, y=mpg, color=factor(vs))) + geom_point()
d + stat_summary(fun.y = "mean", fun.ymin = "mean", fun.ymax = "mean", 
                 colour = "black", aes(shape="total"), geom="point") +
    guides(colour=guide_legend(order=1), shape=guide_legend(title=NULL, order=2))

結果のプロット

于 2013-12-13T21:14:49.003 に答える