R在多个绘图之间以交互方式从同一数据集中识别点

R在多个绘图之间以交互方式从同一数据集中识别点,r,graphics,ggplot2,R,Graphics,Ggplot2,我有一个R数据帧和一些散点图和条形图 df <- data.frame(var1 = c(2,3,8,2,5,6,2,7,4,4),var2 = runif(n = 10),var3 = runif(n=10,min = 10,max=50),var4 = c(rep("A",5),rep("B",5))) plot(df$var1,df$var2) plot(df$var2,df$var3) barplot(df$var3,names.arg=df$var4) df您可以使用ident

我有一个R数据帧和一些散点图和条形图

df <- data.frame(var1 = c(2,3,8,2,5,6,2,7,4,4),var2 = runif(n = 10),var3 = runif(n=10,min = 10,max=50),var4 = c(rep("A",5),rep("B",5)))
plot(df$var1,df$var2)
plot(df$var2,df$var3)
barplot(df$var3,names.arg=df$var4)

df您可以使用
identify
功能在base
R
中以交互方式定位散点图中的点

例如,您可以使用

identify(df$var2,df$var3)
单击兴趣点后,按Esc键。与单击点对应的行号将显示在控制台和图形上

在本例中,我单击了
var2=0.5
var3=30
附近的一个点。结果显示,这是数据集中的第2点

>识别(df$var2,df$var3)#选择点后按Esc键。
[1] 2#df[2,]
#var1 var2 var3 var4
#23 0.481937 29.54026 A

有关更多信息,请参见
?识别

我想
ggvis
+
shinny
可能是另一种选择。AFAIK、base graphics和ggplot2不生成交互式图形。您可以创建一个自定义的htmlwidget来实现这一点。谢谢您的回答。这一切都很好。但是,您能同时在两个或多个绘图中识别一个点吗?这可以作为rmarkdown文档或闪亮的应用程序共享吗?
> identify(df$var2,df$var3) # Hit Esc key once you have selected the point.
[1] 2 # <- this is the result: the index (row) number of the selected point
#> df[2,]
#  var1     var2     var3 var4
#2    3 0.481937 29.54026    A