Я создаю анимированный график из набора данных (используя ggplot2, gganimate, ggrepel ...), но я не могу заставить этикетку округляться во время переходных кадров. Таким образом, он делает большое длинное десятичное число на этикетке. Я могу частично исправить это, установив текст метки в «as.factor» или «as.character», который будет отображать только фактическое значение каждой точки в наборе данных, но в идеале я бы хотел, чтобы он рос как это происходит с десятичными разрядами, но в виде целых чисел (или одного десятичного разряда). Я пытался использовать различные «круглые» функции, но это, похоже, не работает. Любые идеи? :)
Код:
#################################################
# set libraries ----
library(fredr)
library(zoo)
library(tidyverse)
library(lubridate)
library(gganimate)
library(ggrepel)
library(dplyr)
library(readr)
library(ggplot2)
library(scales)
library(readxl)
################################################
# Import Data from XLS
my_data <- read_excel("C:\\Users\\xxx\\OneDrive\\Desktop\\total-world.xlsx")
a3 <-
# Decimal Places in Label when annimated
# ggplot(data=my_data, aes(x=Date,y=Cases,label = as.character(Cases) ))+
ggplot(data=my_data, aes(x=Date,y=Cases,label = Cases ))+
geom_line()+
view_follow()+
geom_point(color="red", size = 4)+
geom_line(size = 1, colour="#FFFFFF") +
geom_area(color="white", fill="#093e58", alpha = 0.4)+
geom_label_repel(aes(label = round(Cases,1)),
segment.colour = "black",
fontface = 'bold',
box.padding = unit(0.5, "lines"),
point.padding = unit(1, "lines"),
segment.color = "Red" ) +
scale_y_continuous(labels=scales::comma_format())+
transition_reveal(ind)+
theme_gray()+
# Ugly, needs cleaning up...
theme(plot.caption=element_text(hjust=0))+
theme(plot.title = element_text(color = "#ff9e2a", size = 15, face = "bold"))+
theme(plot.subtitle = element_text(color = "yellow", size = 15, face = "bold"))+
theme(plot.caption = element_text(color = "green", size = 12, face = "bold"))+
theme(panel.background = element_rect(fill = "#141e24", colour = "#141e24"))+
theme(plot.background = element_rect(fill = "black"))+
theme(panel.grid.major = element_line(colour = "#203039", linetype = "dashed"))+
theme(panel.grid.minor = element_line(colour = "#203039", linetype = "dashed"))+
theme(axis.text.x = element_text(face="bold", color="white", size=14))+
theme(axis.text.y = element_text(face="bold", color="white", size=14))+
theme(axis.title.y = element_text(margin = unit(c(0, 5, 0, 0), "mm"), angle = 0) )+
labs(x="",y="Cases",
title="Worldwide Covid-19 Cases Since the Start",
subtitle="... stay safe out there ...",
caption="Harry Royden McLaughlin - Source: ourworldindata.org \n Updated 04-11-2020")
animate(a3,end_pause=40, nframes=350,fps=12)
save_animation(last_animation(), file="C:\\Users\\xxx\\OneDrive\\Desktop")
Изображение: Десятичные знаки в метке смещения