круглые значения во время перехода - PullRequest
0 голосов
/ 10 февраля 2019

Я хочу создать анимированный барплот с пакетом gganimate.В верхней части каждого бара я хочу поставить значение бара, округленное до нуля.

Рассмотрим следующий пример:

# Example data
df <- data.frame(ordering = c(rep(1:3, 2), 3:1, rep(1:3, 2)),
                 year = factor(sort(rep(2001:2005, 3))),
                 value = round(runif(15, 0, 100)),
                 group = rep(letters[1:3], 5))

# Create animated ggplot
ggp <- ggplot(df, aes(x = ordering, y = value)) +
  geom_bar(stat = "identity", aes(fill = group)) +
  transition_states(year, transition_length = 2, state_length = 0) +
  geom_text(y = df$value, label = as.integer(round(df$value)))
ggp

enter image description here

К сожалению, мне не удалось правильно округлить значения.Есть ли способ округлить значения при переходе?

1 Ответ

0 голосов
/ 11 февраля 2019

Поскольку значение df $ уже округлено до нуля с помощью функции round (), вы можете использовать as.character () при установке меток.

> df$value
[1] 29 81 92 50 43 73 40 41 69 15 11 66  4 69 78
> as.character(df$value)
[1] "29" "81" "92" "50" "43" "73" "40" "41" "69" "15" "11" "66" "4"  "69" "78"

Результат:

ggp <- ggplot(df, aes(x = ordering, y = value)) +
  geom_bar(stat = "identity", aes(fill = group)) +
  transition_states(year, transition_length = 2, state_length = 0) +
  geom_text(label = as.character(df$value))

enter image description here

...