ggvis 与 ggplot2+Shiny;选择哪一个进行交互式可视化?

数据挖掘 r 可视化 ggplot2
2021-09-18 05:55:03

CrossValidated 中有一个类似的问题,我已经阅读了答案。我的问题有点不同。我不想仅仅可视化我的数据,实际上我想要可视化的内容并不容易用任何一个包来可视化。

我有两组点(X,是的坐标)在我的情节上。我想添加边并使其类似于图形。如果我有n 点,然后根据我的问题的性质,我需要添加 (n/2)2 情节的边缘。

然后我想在我的情节中添加一些交互功能。例如,通过单击一个点(顶点),未连接到该单击顶点的所有其他顶点必须消失,以使绘图更加清晰和集中。

我试图找到一个适合我项目的网络可视化包,但似乎它们都使用有关边缘或节点连接的数据,并提供基于某些特定布局算法的网络。我的数据不一样。我有节点的坐标,我想在其中一些之间建立一些边。在我的数据中,节点有自己的固定位置,不得四处移动。

最后,我将包缩小到ggvisggplot2ggvis除了有意设计来生成交互式情节之外,它还很新颖。但我发现它ggplot2+Shiny也可以产生交互式情节。(对吗?)此外,我认为ggplot2's 的功能比 : 更多样化和成熟ggvis:例如ggplot2具有缩放功能而ggvis没有它。更重要的ggvis是,随着成长和变化,我不想在一年左右的技术上变得过时或有缺陷的工作上投入大量时间。我认为如果我基于ggvis.

现在请您评估一下我的选择 ( ggplot2+shiny) 并告诉我是否有可能用它来做我想做的事?

由于我不知道任何提到的软件包,我已经开始ggplot2从 Wickham 的书中学习,我喜欢它!但我害怕花几个星期后发现这个神奇的包即使在Shiny.

PS:我想把最终代码放在github上,以便可能的用户可以下载并运行它。因此,我不需要做一个网络应用程序,不需要任何网站或将交互式地图放到网上。我只需要一个可以从 Rstudio 内部运行的交互式绘图。

2个回答

好吧,这个帮助请求已经过去了好几个月。我根据自己的要求写下这个答案,以分享我的经验。我学会了ggplot2,然后ggvis也是ShinyShiny可以与他们一起工作,但我发现ggvisggplot2. 基于后者的开发经验正在开发一些可以预期的东西,因为前者。此外,ggvis似乎比ggplot2快速生成图形/图表要快得多,它似乎更适合“闪亮”和创建小程序。ggvis但是,不利的一点是由于该软件包正在开发中并且尚未成熟,因此缺少许多功能。

非常感谢这里的评论。我查过了Gephi,没用。我创建了我的小程序,它工作得非常好,但是我终于到了这一点,我需要使用更强大的工具,例如d3js,正如有人已经建议的那样。

时光飞逝!经过 2 年的工作经验,现在我对 Shiny、R 和交互式可视化有了更好的理解来回答我自己的问题。

Plotly 是迄今为止最好的答案。它可以通过 ggplot2 静态图的 ggplotly() 转换轻松使用,或者直接通过学习 Plotly 函数背后的逻辑来使用。

后一种情况建议用于具有不同绘图的应用程序。