6

ggplot2 で facet_grid を使用する場合、特定のプロットの右上隅にある各グリッド セルのサブセット化されたデータの相関値を取得できるようにしたいと考えています。

たとえば、実行中の場合:

p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p + facet_grid(vs ~ am, margins=TRUE)

グリッド内の 9 つのプロットのそれぞれの相関値をどこかに表示したいと思います。この例の特定のケースでは、目視検査から、それぞれが -0.9 程度に近いと予想されます。

または、facet_grid と一致するテーブル内の各セルの相関値を提供するプロットに対応する出力テーブル... (これはあまり望ましくありませんが、オプションでもあります)。

理想的には、統計を計算するためにプロットされた 2 つの変数のいずれかまたは両方を使用できるように、これを選択した他の関数に拡張したいと考えています。

これは可能ですか?

前もって感謝します

4

2 に答える 2

7

Winston Chang は ggplot2 グループで回答を提案しました...これは彼が言ったことです...悪い回答ではありません...

次のようなことができます。

p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()

# Calculate correlation for each group
cors <- ddply(mtcars, c("vs", "am"), summarise, cor = round(cor(mpg, wt), 2))

p + facet_grid(vs ~ am) +
geom_text(data=cors, aes(label=paste("r=", cor, sep="")), x=30, y=4)

ただし、margins=TRUE でこれを正しく出力することはできないと思います。マージンが必要な場合は、データを前処理して、各ファセット変数に ALL 値を追加する必要がある場合があります。

-ウィンストン

于 2012-07-24T08:50:58.247 に答える
6

データに(線形)スムーザーを追加したいと思います。相関関係よりも多くの情報を提供します。

ggplot(mtcars, aes(mpg, wt)) + 
    geom_smooth(method = "loess", colour = "red", fill = "red") + 
    geom_smooth(method = "lm", colour = "blue", fill = "blue") + 
    geom_point() + facet_grid(vs ~ am, margins=TRUE)

ここに画像の説明を入力

ggplot(mtcars, aes(mpg, wt)) + geom_smooth(method = "lm") + geom_point() + 
    facet_grid(vs ~ am, margins=TRUE)

ここに画像の説明を入力

于 2012-07-24T08:10:29.983 に答える