我正在尝试使用一些月度数据制作动画gganimate.这些图表工作得很好,除了下降点(低于基线的字母,即g,j,p,q和y)的存在改变了标题占用的空间量.反过来,这会稍微移动标题的基线,这会减损动画.也就是说,当标题中有下降符时,标题会明显地"跳跃"一点.
一个例子:
myDF <-
data.frame(
Date = seq(as.Date("2015-01-15")
, as.Date("2015-12-15")
, "1 month")
, x = 1:12
, y = 1:12
)
myDF$frame <-
factor(format(myDF$Date, "%Y-%b")
, levels = paste0("2015-", month.abb))
toAnimate <-
ggplot(
myDF
, aes(x = x
, y = y
, frame = frame)
) +
geom_point() +
theme_gray()
gganimate::gganimate(toAnimate)
Run Code Online (Sandbox Code Playgroud)
使用旧版本gganimate的问题更为明显(并且不需要包含年份来演示),因为它移动了剧情而不是标题:
gganimate::gg_animate(toAnimate)
Run Code Online (Sandbox Code Playgroud)
我可以通过使用所有大写字母(没有下行程序)来"解决"这个问题,但我并不特别喜欢所有大写的外观(特别是作为实际用例的较大标题的一部分).我也可以用已经有下降器的东西预先添加帧标题,例如,ggtitle("Timeperiod: ")我不想添加不相关的文本来解决这个问题(添加"Timeperiod:"就是我现在已经使用的东西).
我已经通过在帮助看theme在ggplot2,但我没有看到任何看起来像它会解决这个问题.
我有城镇(从A到D),它们有不同的人口,并且距离不同.目标是将居住在半径圆(XY距离)内的总人口加起来,其中X是圆圈中心的城镇,Y是任何其他城镇.
在这段代码中:
Df <- structure(list(Town_From = c("A", "A", "A", "B", "B", "C"), Town_To = c("B",
"C", "D", "C", "D", "D"), Distance = c(10, 5, 18, 17, 20, 21)), .Names = c("Town_From",
"Town_To", "Distance"), row.names = c(NA, -6L), class = "data.frame")
Df2 <- structure(list(Town = c("A", "B", "C", "D"), Population = c(1000,
800, 500, 200)), .Names = c("Town", "Population"), row.names = c(NA,
-4L), class = "data.frame")
Df <- Df %>% left_join(Df2,by=c("Town_From"="Town")) %>%
left_join(Df2,by=c("Town_To"="Town"))%>%
group_by(Town_From) %>%
arrange(Distance)
colnames(Df)[4]<-c("pop_TF")
colnames(Df)[5]<-c("pop_TT")
Source: local data …Run Code Online (Sandbox Code Playgroud) 当我尝试使用 绘制任何内容时ggplot2,我无法生成图表。输出发生变化,并且不一致,但我收到的不是图表,而是空白的白色图像或没有数据的轴,或者所有数据、轴和标签都挤在图表的中心。
绘制散点图时,如下所示:
ggplot(iris, aes(x=Petal.Length, y=Petal.Width)) + geom_point()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
UseMethod(“深度”) 中的错误:没有适用于“深度”的方法应用于“NULL”类的对象
和带有标记轴的空白图(但请注意上面的错误范围)。
ggplot当我使用和使用时都会发生这种情况qplot。
目前,我正在使用:
OSX 10.11.6
R:3.3.2
XQuartz:2.7.11
以上所有内容均已重新安装。
我有简单的情节:
sample_data <-
data.frame(
x = 1:100
, y = 1:100
)
temp_plot <-
ggplot(sample_data
, aes(x = x
, y = y)) +
geom_line(
size = 3
, arrow = arrow()
, lineend = "round"
, linejoin = "round"
) +
theme_minimal()
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
gganimate我想像这样制作它的动画:
temp_animate <-
temp_plot +
transition_reveal(x)
anim_save("temp_animate.gif"
, temp_animate
, "~/Downloads/"
, end_pause = 10)
Run Code Online (Sandbox Code Playgroud)
然而,当我这样做时,箭头一直指向错误的方向,直到最后一帧(暂停以表明该方向是正确的)。
我尝试过使用 中的值arrow(包括各种角度,包括负值),但我所做的似乎都没有纠正箭头的方向(它应该沿着每帧中的当前向量指向)。
如何让箭头始终指向正确的方向?(我将其作为问题交叉发布到 github 目录中)。