あなたはgeom_rect
を探している、とggplot2
問題でいつものように、それは変装し データ操作の問題です。あなたはgeom_rect
に供給することができ、データフレームを作りたいので、あなたが必要とするxmin
、xmax
...
私はあなたが、あなたが実際のデータに適合させる必要があるかもしれません使用したサンプルデータに基づいて、ここにいくつかの仮定を作ってるんですあなたが持っている。
dataset %>%
mutate(step = cumsum(lag(cluster, 1, default = TRUE) != cluster)) %>%
head
day cluster step
1 2010-01-01 1 0
2 2010-01-02 3 1
3 2010-01-03 3 1
4 2010-01-04 2 2
5 2010-01-05 3 3
6 2010-01-06 2 4
その後group_by
このstep
変数:
dataset %>%
mutate(step = cumsum(lag(cluster, 1, default = TRUE) != cluster)) %>%
group_by(step) %>%
summarise(cluster = first(cluster), date_min = min(day)) %>%
mutate(date_max = lag(date_min, 1)) %>%
select(-step) %>%
ggplot() + geom_rect(aes(xmin=date_min, xmax = date_max, ymin=0, ymax=1, fill = cluster, col = cluster))
キーを使用すると、cluster
列を変更するたびにインクリメントstep
変数です。残りは古典的なdplyrであり、次にggplot2
です。
私はあなたが望むことを理解しています。残りは化粧品だけです。
素晴らしい。私はいつもgeom_tileについて忘れています:-) –
@RomainFrancois、ありがとう!大量のデータがある場合は、 'geom_tile'のように毎日の値をプロットするのではなく、連続したグループを結合するので、あなたのソリューションがより望ましいと感じます。 おそらく少ないものからpdfのようなものでレンダリングを改善するでしょうプロットに追加されます。 –