2015-08-24 66 views
3

我有一個R數據框和一些散點圖以及由它們創建的條形圖。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) 

enter image description here

如果我感興趣的第一個情節點,我想,以確定在第二,第三或多個其他情節點。我希望能夠在可共享的rmarkdown文檔中以交互方式執行此操作(例如,使用鼠標懸停效果)。

如何在R中使用基本圖形,ggplot或甚至像shiny/rCharts這樣的工具來做這件事?任何示例/鏈接將不勝感激。謝謝。

+1

我想'ggvis' +'shiny'可能是另一種選擇。 AFAIK,基本圖形和ggplot2不會產生交互式圖形。 –

+0

您可以創建一個自定義的htmlwidget來執行此操作。 – hrbrmstr

+0

情節,htmlwidgets – Khashaa

回答

1

您可以使用identify函數以基於R的交互方式查找散點圖中的點。

舉個例子,你可以用

identify(df$var2,df$var3) 

識別變量對第二陰謀一旦你點擊了興趣點,打Esc鍵。與您點擊的點相對應的行號將顯示在控制檯和圖形上。

在這種情況下,我點擊了var2=0.5var3=30附近的點。結果顯示這是數據集中的第2點。

enter image description here

> 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 

欲瞭解更多信息,請參閱?identify

+0

感謝您的答案。這非常好。但是,你能同時在兩個或兩個以上的地塊中確定一個點嗎?這可以作爲一個rmarkdown文件或閃亮的應用程序共享? – rmf

相關問題