【发布时间】:2012-12-07 17:57:14
【问题描述】:
我有一些数据想放在散点图中,当我滚动图表上的点时,我想弹出一个气泡并提供一些识别信息。
例如,如果我有一个包含学生姓名、身高和体重的数据框,我想分别在 x 轴和 y 轴上绘制身高和体重。然后,当我在绘图上滚动一个单独的点时,会弹出一个带有学生姓名的气泡。
在基本的plot() 中使用了一个有点类似的功能,称为identify(),但它需要单击该点并且在我离开该点后不会消失。
这是一个示例 df 和绘图/识别代码:
> dput(df1)
structure(list(id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), var1 = c(0.469521932071075,
0.077109789242968, 0.076340542640537, 0.461061101639643, 0.347079795086756,
0.425340321380645, 0.738443679409102, 0.00931701785884798, 0.267918228404596,
0.722170797875151), var2 = c(0.265150599181652, 0.557858553016558,
0.715832461370155, 0.186717337928712, 0.626156869810075, 0.1359783844091,
0.67408229294233, 0.528320853365585, 0.241800826275721, 0.80992470192723
), names = c("jim", "nancy", "suzy", "mark", "alex", "jen", "luz",
"jeff", "paula", "amir")), .Names = c("id", "var1", "var2", "names"
), row.names = c(NA, -10L), class = "data.frame")
plot(df1$var1, df1$var2);grid()
identify(df1$var1, df1$var2, labels = df1$names)
下面是点击几个点后的例子:
有什么建议吗?
【问题讨论】:
-
更长的答案可能是它会,但不会持续(很长?)一段时间。 (我假设最终会与 d3 融合。)与此同时,您可能会被 SVG 注释所困扰(在 CRAN 包中搜索 SVG,您会找到它们)。但我可以从经验告诉你,这不是很好玩。
-
谢谢。我很欣赏这些信息。看起来 googleVis 包可能是可行的替代品。
-
Hadley 一直在努力,并演示了一些我不记得名称的东西,用于他的
profr包的交互式视图......但this link 有一些其他资源。 -
这不再起作用,但结果与您想要的相似,它可能会对您有所帮助stackoverflow.com/questions/11134379/…
-
@screechOwl 如果您想要这种类型的交互性,至少从基于 Web 的角度来看,您应该考虑学习 d3。 googleVis 很棒,但请记住,它会将专有或潜在的私有数据发送到 google 可视化 api。
标签: r ggplot2 interactive