X軸を因子として `geom_line()` を使用する 質問する

X軸を因子として `geom_line()` を使用する 質問する

次のようなデータフレームがあるとします。

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

曜日別の総数をプロットしたいのですが、ライン点をつなげてみます。次の式はポイントそれぞれの値について:

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)

これらを線 ( geom_line()) で接続しようとすると、ggplot はグループごとに 1 つのデータ観測しかないというエラーを出し、ポイント間に線を描くことができません。

これは理解できます。曜日ごとに 1 本の線 (因子レベル) を描画しようとしているのです。

ggplot で、曜日が数値であると仮定するには (行の目的のみ) どうすればよいでしょうか。day_of_week月曜日は 0、火曜日は 1 などの別の列を用意する必要があるのでしょうか。

ベストアンサー1

問題を正しく理解していれば、レイヤーを指定し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")

ここに画像の説明を入力してください

おすすめ記事