2015-03-06 11 views
3

Я хотел бы создать интерактивные графики в R, где пользователь может увеличивать/уменьшать график и, если возможно, также щелкнуть по вершине и получить дополнительную информацию об этом. В igraph есть rglplot, который может увеличиваться и уменьшаться, но делает график 3d - если есть способ сделать rglplot отображаемым 2d, это может сделать трюк. igraph также имеет tkplot, но это позволяет только перетаскивать вершины, а не увеличивать/уменьшать масштаб. Также tkplot не может быть развернут в Интернете (что является предпочтительным, но не обязательным).Интерактивный график в R

Я читал, что ragraph может отображать интерактивные графики, но не смог выяснить, как это сделать.

Есть ли у кого-нибудь хорошие предложения?

+0

@jalapic - спасибо за ответ, я думаю, что я могу сделать много с SVG. Я не уверен, хотя, если я должен использовать gridSVG или SVGAnnotation. gridSVG, как я понимаю, совместим с Shiny, но его нужно использовать на графиках, основанных на сетке. У меня есть объект графика (график диаграммыNEL), который строится с базовым графиком(), - это то, что график сетки/может применяться сетка к нему? SVGAnnotation работает с базовой графикой, но знаете ли вы, совместимы ли с Shiny? – md1630

+0

Спасибо всем, это работает отлично для некоторых моих меньших графиков, но для больших, это рушится r studio. @jalapic networkD3 может быть лучше для больших графов, но поддерживает ли она ациклические графы? Что-то вроде этого: https://github.com/nickholub/d3-dag-visualization, но также поддерживается в R? – md1630

ответ

2

Очень хороший вариант является svgPanZoom пакетом, который является по существу R htmlwidget для svg-pan-zoom.js

вы можете использовать его с регулярными участками, другими пакетами построения графиков и блестящими.

см: https://github.com/timelyportfolio/svgPanZoom

пример:

devtools::install_github("timelyportfolio/svgPanZoom") #install 


library(svgPanZoom) 
library(SVGAnnotation) 

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

отлично, спасибо! – md1630

0

Отъезд Блестящий. Он позволяет создавать очень аккуратные интерактивные графики и легко развертывать их на веб-странице. Обратите внимание, что он полностью зависит от RStudio. Я немного поиграл с ним и был очень впечатлен. У них хорошие учебные пособия. http://www.rstudio.com/products/shiny/

+0

спасибо Дэнни. Да, это именно то, что я ищу. У меня есть приложение в Shiny, но я могу взаимодействовать только с графиками через пользовательские элементы управления - то есть я могу иметь тип пользователя в элементе управления и показывать все узлы ниже. Но я не могу заставить пользователя нажимать на узел, чтобы показать больше информации, или просто увеличить масштаб с помощью мыши, например – md1630

+1

@ md1630 - взглянуть на networkD3 - это позволяет вам больше взаимодействовать с сетевыми графиками – jalapic

Смежные вопросы