小编Mar*_*son的帖子

使用下降字母动画时,防止标题空间发生变化

我正在尝试使用一些月度数据制作动画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:"就是我现在已经使用的东西).

我已经通过在帮助看themeggplot2,但我没有看到任何看起来像它会解决这个问题.

r ggplot2 gganimate

7
推荐指数
1
解决办法
153
查看次数

有条件的变异cumsum dlpyr

我有城镇(从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)

conditional r cumsum dplyr

5
推荐指数
1
解决办法
213
查看次数

我无法使用 ggplot2 生成任何图表

当我尝试使用 绘制任何内容时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
以上所有内容均已重新安装。

r ggplot2

3
推荐指数
1
解决办法
7034
查看次数

使用 gganimate 指向错误方向的箭头

我有简单的情节:

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 目录中)。

r gganimate

3
推荐指数
1
解决办法
413
查看次数

标签 统计

r ×4

gganimate ×2

ggplot2 ×2

conditional ×1

cumsum ×1

dplyr ×1