ggplotly - 当存在 NA 时,如何制作带有标签的动画散点图?

ggplotly - how to do an animated scatterplot with labels when NAs are present?

提问人:last_resource 提问时间:10/25/2023 更新时间:10/25/2023 访问量:7

问:

我使用的是一个包含 2 个国家、11 年和 2 个变量的不平衡面板。一个国家在两个变量中都没有缺失值,而另一个国家在两个变量中都有四年缺失的年份。这是我的数据帧

df <- structure(list(
ISO = c("BRA", "BRA", "BRA", "BRA", "BRA", "BRA","BRA", "BRA", "BRA", "BRA", "BRA", "USA", "USA", "USA", "USA","USA", "USA", "USA", "USA", "USA", "USA", "USA"), 
year = c(1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990), 
y = c(1.49928137169864, 1.48826755573396, 1.4852053019613, 1.49215038590105, 1.48925247516576, 1.50012937543379, NA, NA, NA, NA, 1.57689188746679, 1.58319781015294, 1.58382940099389, 1.58413234358913, 1.58337049236411, 1.58433274492085, 1.58445957772582,  1.58370284674093, 1.58291143519588, 1.58314679337981, 1.58302389868652, 1.58246620735483), 
x = c(0.673651140454928, 0.659558887085615,  0.633375124775425, 0.653921566330419, 0.654296097588995, 0.682025986688934, NA, NA, NA, NA, 0.906490443503071, 0.981373633793688, 0.980293927670322, 1.00110944206308, 0.953001041098418, 0.966203553492277, 0.969308764992296, 0.944873699574678, 0.929346720968387, 0.941836758277121, 0.947643266493785, 0.966693155516413)), 
class = "data.frame", 
row.names = c(134L, 135L, 136L, 137L, 138L, 139L, 140L, 141L, 142L, 143L, 144L, 1236L,  1237L, 1238L, 1239L, 1240L, 1241L, 1242L, 1243L, 1244L, 1245L, 1246L))

我想创建一个动态散点图,其中两个点代表随着时间的推移在 x-y 空间中移动的国家。此外,我想用国家名称标记这些点。 我可以使用它,但我更喜欢 .gganimateggplotly

我尝试使用以下代码

library(plotly)
library(ggplot2)
ggplotly(ggplot(df, aes(y = y, x = x, color = ISO, label = ISO, frame = year))+
           geom_point()+
           geom_text(hjust=0, vjust=0)+
           theme(legend.position="none")+ 
           theme_bw())

问题在于,当动画进入缺失的年份时,缺失的国家/地区的标签会消失,而另一个国家的标签会重复。 相反,我希望缺失的国家/地区消失,包括重点和标签,并避免任何重复。

这是我想避免的enter image description here

r 动画 标签 na ggplotly

评论


答: 暂无答案