1

この facet_grid に回帰直線を追加しようとしていますが、問題があるようです。

 qplot(date, data=ua, geom="bar", 
                      weight=count, 
                      ylab="New User Count", 
                      xlab='Date', 
                      main='New Users by Type Last 3 Months',
                      colour=I('lightgreen'),
                      fill=I('grey')) + 
    facet_grid(un_region~role, scales='free', space='free_y') + 
    opts(axis.text.x =theme_text(angle=45, size=5))

これが私が扱っているデータのサンプルです。カウントを合計する必要があることに注意してください。これが、weight = countを使用している理由です。より良い方法があるかどうかはわかりません。

     date         role                   name un_region              un_subregion us_state count
1 2012-06-21 ENTREPRENEUR              Australia   Oceania Australia and New Zealand              2
2 2012-06-21 ENTREPRENEUR                Belgium    Europe            Western Europe              1

ありがとう。

4

1 に答える 1

4

棒グラフを使用しているように見えるので、何の傾きを描いているのかわかりません。3 つの方法がありますが、ここでは 2 つを説明します。実際の xy データがあり、ファセットごとに個々の回帰直線を当てはめたい場合は、単に を使用しますstat_smooth(method="lm")。ここにいくつかのコードがあります:

library(ggplot2)
x <- rnorm(100)
y <-  + .7*x + rnorm(100)
f1 <- as.factor(c(rep("A",50),rep("B",50)))
f2 <- as.factor(rep(c(rep("C",25),rep("D",25)),2))
df <- data.frame(cbind(x,y))
df$f1 <- f1
df$f2 <- f2

ggplot(df,aes(x=x,y=y))+geom_point()+facet_grid(f1~f2)+stat_smooth(method="lm",se=FALSE)

これにより、次の結果が得られます。

ここに画像の説明を入力

または、コマンドを使用してgeom_abline()、独自のインターセプトと勾配を設定することもできます。棒グラフに重ねられたダイヤモンド データ セットを使用した例を次に示します。おそらく、探しているものです。

ここに画像の説明を入力

このスニペットで散布図だけの例を見ることができます ggplot(df,aes(x=x,y=y))+geom_point()+facet_grid(f1~f2)+geom_abline(intercept = 0, slope = 1 )

于 2012-09-24T21:02:34.730 に答える