I have this dataframe
dt <-
data.frame(
date = as.Date(c("2022-01-01", "2022-01-02", "2022-01-01", "2022-01-02", "2022-01-01", "2022-01-02", "2022-01-01", "2022-01-02")),
seq = c(1, 1, 2, 2, 1, 1, 2, 2),
days = c(1, 1, 1, 1, 2, 2, 2, 2),
val = seq(1, 8))
I'd like to create animated geom_tile and geom_text plots in ggplotly where animation frames will be days. I created this code:
ggplotly(
ggplot(
dt,
aes(x = seq, y = date, fill = days))
geom_tile(frame = days)
geom_text(aes(label = val), frame = days)
facet_grid(days~.)
)
But I'm getting following warning and there is no animation at all.
Warning messages:
1: Ignoring unknown parameters: frame
2: Ignoring > unknown parameters: frame
In other words, expected result for first frame is
ggplotly(
ggplot(
dt %>%
filter(days == 1),
aes(x = seq, y = date, fill = days))
geom_tile(frame = days)
geom_text(aes(label = val), frame = days)
facet_grid(days~.)
)
and second frame should be
ggplotly(
ggplot(
dt %>%
filter(days == 2),
aes(x = seq, y = date, fill = days))
geom_tile(frame = days)
geom_text(aes(label = val), frame = days)
facet_grid(days~.)
)
CodePudding user response:
I'm not sure what your expected output is. If you want to set frame
, do this in ggplot(aes())
. However, you're not going to be able to facet on the same variable as you use for frame
.
ggplotly(
ggplot(dt, aes(x = seq, y = date, fill = days, frame = days))
geom_tile()
geom_text(aes(label = val))
)