【问题标题】:Hexbin plot with animation带动画的Hexbin图
【发布时间】:2018-07-03 23:17:25
【问题描述】:

我想为具有年度滑动比例的十六进制图构建动画,以便它为每年渲染一个新的十六进制图。

目前我正在使用ggplot2plotly for the animation 并且可以为geom_point 创建它,但看起来geom_hex 不受plotly 的支持,并且图中没有呈现任何内容。

library(plotly)
library(ggplot2)
library(gapminder)

p1 <- ggplot(gapminder) +
geom_point(aes(y = lifeExp, x = gdpPercap, frame = year))

ggplotly(p1)

p2 <- ggplot(gapminder) +
geom_hex(aes(y = lifeExp, x = gdpPercap, frame = year))

ggplotly(p2)

我所追求的结果将与facet_wrap(~year) 生成的图表等效,但使用动画代替。

ggplot(gapminder) +
geom_hex(aes(y = lifeExp, x = gdpPercap)) + facet_grid(~year)

我也看过gganimate,但安装时遇到问题,我更喜欢plotly 的滑动秤。谷歌搜索试图找到如何为十六进制图制作动画,但没有结果。 R 中是否有任何其他绘图或动画包可以用来实现这一点,或者我可以破解ggplotplotly 来做我想做的事?

将不胜感激有关如何执行此操作的代码。

【问题讨论】:

  • 我认为请求:“使用hexbin 为我构建一个plotly 项目”对于SO 来说可能过于复杂。您应该将其分解为组件并展示您对每个组件所做的工作。
  • 感谢您的回复。就我的 R 图形知识和谷歌搜索能够带我而言,我已将其分解为组件。我知道我想做什么,但不知道如何实现它。但我很高兴被指出正确的方向:) 我不知道这个问题的实际答案可能有多复杂。如果有人在我请求代码之前已经完成了这个或其中的一部分,但如果它有损于问题,我可以进行编辑。你是一个享有很高声誉的用户,对我如何开始有什么建议吗?对我来说看起来像它的 Rgraphics 101 ;)

标签: r plot ggplot2 plotly


【解决方案1】:

ggplotly 的代码显示调度是通过 last_plot() 值的类的 hte 类进行的:

ggplotly
 #---------
function (p = ggplot2::last_plot(), width = NULL, height = NULL, 
    tooltip = "all", dynamicTicks = FALSE, layerData = 1, originalData = TRUE, 
    source = "A", ...) 
{
    UseMethod("ggplotly", p)
}
<bytecode: 0x7feba7ef5ff0>
<environment: namespace:plotly>

因此,正如您所怀疑的,似乎没有“痕迹”可以使用与类项目相关联的 plotly 术语:类 GeomHex, Geom, gg。但是,有一个方法与 GeomPath 类的值相关联,因此您可以使用 geon_density2d 使用该数据对二维密度进行动画处理。它在动画过程中有点纠结,但数据中的整体模式在我看来似乎很明显:

library(plotly)
library(ggplot2)
library(gapminder)

p2 <- ggplot(gapminder) +
geom_density2d(aes(y = lifeExp, x = gdpPercap, frame=year))

ggplotly(p2)

ggplot 发出关于未使用帧的警告,但必须在 aes(.) 调用中保留 frame 参数以向 ggploty 发出需要动画的信号。

还让 bin2d 为间隔热图类型的显示设置动画:

p3 <- ggplot(gapminder) +
geom_bin2d(aes(y = lifeExp, x = gdpPercap, frame=year))

ggplotly(p3)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 2014-10-01
    • 2021-03-25
    相关资源
    最近更新 更多