2013-05-03 3 views
27

は、私がデータフレームがあるとします。)は( `geom_lineを使用して`

hist <- data.frame(date=Sys.Date() + 0:13, 
        counts=1:14) 

私はポイントを接続するためにラインを使用して、平日に対して合計数をプロットしたいです。各値の 次プットポイント:私はライン(geom_line())とそれらを接続しようとすると

hist <- transform(hist, weekday=factor(weekdays(date), 
             levels=c('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'))) 
ggplot(hist, aes(x=weekday, y=counts)) + geom_point(stat='summary', fun.y=sum) 

、ggplotだけグループごとに1つのデータ観測を持つので、線を描画することができません文句を言いますポイント間。

私はこれを理解しています - それは、平日(要因レベル)ごとに1行を描こうとしています。

ggplotに、平日は数字であることを偽るようにするにはどうしたらよいですか?おそらく私は別の列day_of_weekを持っている必要があります。それは月曜日は0、火曜日は1などですか?

答えて

33

私が正しく問題を理解していれば、group=1を指定してstat_summary()層を追加することはトリックを行う必要があります。

ggplot(hist, aes(x=weekday, y=counts, group=1)) + 
geom_point(stat='summary', fun.y=sum) + 
stat_summary(fun.y=sum, geom="line") 

enter image description here

+3

すばらしいです! 'group = 1'の目的は何ですか(なぜ1ですか?それは何ですか?) –

+3

ああ、私はそれを見つけたと思います。 [here(ggplot2 documentation)](http://docs.ggplot2.org/current/aes_group_order.html) –

+5

複数の行を一度にプロットする場合は、 'group = variableWhichDefinesLines ' –

関連する問題