在R中创建交互式图表

3
我想在R中创建交互式图形,用户可以放大/缩小图形,并且如果可能,还可以单击一个顶点并获取更多信息。在igraph中,有rglplot可以进行放大和缩小操作,但会将图形转换为3D模式——如果有办法让rglplot呈现2D图形,那么这可能就达到了目的。igraph还有tkplot,但它只允许拖动顶点,无法缩放。此外,tkplot不能部署在Web上(尽管这是首选但不是必需的)。
我已经了解到ragraph可以绘制交互式图形,但是还没有弄清楚如何使用。
是否有任何好的建议?

@jalapic - 感谢您的回复,我认为我可以用svg做很多事情。但我不确定是否应该使用gridSVG还是SVGAnnotation。据我所知,gridSVG与Shiny兼容,但必须用于基于网格的图表 - 我有一个图形对象(一个graphNEL图形),它是用基本的plot()绘制的 - 那是一个基于网格的图表吗/我能将网格应用于它吗?SVGAnnotation适用于基本图形,但您知道它是否与Shiny兼容吗? - md1630
谢谢大家,这对于我的一些较小的图表来说运行得很好,但对于更大的图表,它会导致R Studio崩溃。@jalapic networkD3可能更适合更大的图表,但它是否支持有向无环图?类似于这样:https://github.com/nickholub/d3-dag-visualization,但也支持R吗? - md1630
2个回答

3
非常好的选择是 svgPanZoom 包,它本质上是一个用于 svg-pan-zoom.js 的 R htmlwidget。
您可以将其与普通绘图、其他图形包和 shiny 一起使用。
请参见:https://github.com/timelyportfolio/svgPanZoom 示例:
devtools::install_github("timelyportfolio/svgPanZoom") #install


library(svgPanZoom) 
library(SVGAnnotation)

svgPanZoom(
  svgPlot(
    plot(1:10)
  )
)

0

看看Shiny吧。它可以让你创建非常整洁的交互式图表,并轻松部署到网页上。请注意,它完全依赖于RStudio。我已经试用了一下,印象还不错。他们有很好的教程。 http://www.rstudio.com/products/shiny/


谢谢Danny。是的,那正是我要找的。我有一个Shiny应用程序,但我只能通过用户控件与图表进行交互 - 例如,我可以让用户在控件中输入并显示下面的所有节点。但我无法让用户单击节点以显示更多信息,或者使用鼠标放大缩小,例如。 - md1630
1
@md1630 - 看看networkD3吧 - 它可以让你更多地与网络图进行交互。 - jalapic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接