> head(data8)
# A tibble: 6 x 8
name industry Time evToGi evToRev size alpha color
<chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <chr>
1 Activision Blizzard Gaming Dec18 5.93 2.73 6 0.1 #777777
2 Activision Blizzard Gaming Jun15 8.17 5.23 4 0.1 #777777
3 Adobe Software Solutions Dec18 6.87 4.33 6 0.1 #777777
4 Adobe Software Solutions Jun15 5.69 3.81 4 0.1 #777777
5 Amazon Ecommerce Dec18 39.8 6.77 6 1 #0066CC
6 Amazon Ecommerce Jun15 12.7 2.28 4 1 #0066CC
data8 %>%
ggplot(aes(x = evToRev, y = evToGi, colour = industry)) +
geom_line(aes(group = name), alpha = data8$alpha, colour = "#666666") +
geom_point(
size = data8$size,
alpha = data8$alpha,
color = data8$color) +
labs(x = 'EV/R', y = 'EV/GM',
title = 'Change in EV/R and EV/GM multiples for ECommerce tech giants, 2015 - 2018')

大家好,
我有下面的数据和图表,用ggplot创建,我想通过10个不同的行业中的每一个进行动画化,通过大小、颜色和alpha一次强调每个行业,而其他9个行业则是灰色的。
这与示例在这里的医生里略有不同,在该示例中,每个虹膜组一次显示。在我的示例中,我希望所有的数据总是显示出来,并且只需通过更改所关注的行业来迭代。
对如何使用gganimate做这件事有什么想法吗?我目前正在进行这方面的工作,并将根据所取得的任何进展更新该职位。
编辑:我假设这将涉及到一些重构,因为我将无法按照当前的方式硬编码大小、alpha和颜色。
发布于 2019-07-26 19:37:05
我很快就测试出来了,而且不像你提到的那样起作用。希望这足以让你朝着正确的方向前进。
industries <- unique(data8$industry) %>% paste(collapse = ",")
data8 <- data8 %>%
mutate(ind = industries) %>%
separate_rows(., ind, sep = ",") %>%
mutate(color = ifelse(ind == industry, "#0066CC", "#777777"),
alpha = ifelse(ind == industry, 1, .1))
p <- ggplot(data8, aes(x = evToRev, y = evToGi, colour = industry)) +
geom_line(aes(group = name, alpha = alpha), colour = "#666666") +
geom_point(aes(alpha = alpha,
color = color),
size = data8$size,
) +
scale_alpha_identity() +
scale_color_identity() +
labs(x = 'EV/R', y = 'EV/GM',
title = 'Change in EV/R and EV/GM multiples for ECommerce tech giants, 2015 - 2018')
anim <- p + transition_states(ind)
animhttps://stackoverflow.com/questions/57225661
复制相似问题