R中是否可以实现联动刷选

3 投票
5 回答
1369 浏览
提问于 2025-04-17 20:51

我昨天看到这个,但它是为matplotlib设计的,而我知道matplotlib只适用于Python。这个功能对我的工作来说非常有用。

那么,R语言有没有类似的功能呢?我查了一下,看到的最接近的就是iPlots/Acinonyx,但那些网站好像有几年没更新了。请问这些包用起来还不错吗?我没看到过它们的使用例子。

另外,mpld3/matplotlib/python和R能一起用吗?我的意思是,我能在R中加载我的数据框,然后用mpld3/matplotlib/python来探索数据,最后再在R中做出漂亮的图吗?

坦白说:我还是个新手(R是我自从小时候学QBASIC以来,第一次真正尝试学习的编程语言……)。

5 个回答

0

另外,可以看看 http://cranvas.org/ 这个网站。虽然安装起来可能对新手来说有点难,但付出的努力是值得的。

2

JGR这个包提供了一个Java接口,可以让你在Java中使用R语言。通过这个接口,你可以调用一个叫做iplots的库。在你的R终端里,输入

install.packages("JGR");
library(JGR);
JGR()

这会打开一个新窗口,你可以像使用标准的R终端一样使用这个窗口。
现在你应该可以使用iplots进行数据选择了:

X = matrix(rnorm(900), ncol = 3);
iplot(X[,1], X[,2]);
iplot(X[,1], X[,3]);
ihist(X[,1])
2

R语言的一个包叫做 ggvis,它的功能和你提到的类似。不过这个包还在早期开发阶段,最近刚刚发布了0.1版本。(这也适用于 mpld3)。

关于你的第二个问题,是的,它们可以很好地配合使用。你提到的那种做法,最简单的方法是使用在IPython笔记本中的 R魔法函数

4

虽然R语言目前似乎没有类似的功能,但我想提一下,mpld3现在有一个清晰的JSON格式,用于表示图形,这在某种程度上和Vega有点像(不过层次要低得多)。我不是R或ggplot的用户,但看起来ggvis的ggplot转Vega的方法可以很容易地调整一下,用来把ggplot转换成mpld3。

3

我忘了怎么在R语言中做带有刷选功能的联动图了,但我知道这个功能是可以实现的。我通常使用GGobi来做这个,网址是http://ggobi.org/。它是专门为数据分析而设计的,可以通过可视化的方式来探索数据,而且有R语言的包可以和它进行沟通和编写脚本。

关于GGobi,有一本不错的书,叫做《互动与动态图形数据分析:使用R和GGobi》。

撰写回答