이것이 가능한지 확실하지 않지만 여기에 내가하고 싶은 것이 있습니다. 드롭 다운 메뉴에서 선택하여 플롯 플롯의 데이터를 업데이트하고 싶습니다. 간단한 예로서 음모 : 드롭 다운 선택으로 데이터 업데이트
내가 데이터 프레임이 I 산점도에df$x
df$y
를 사용하고있는
df <- data.frame(x = runif(200), y = runif(200), z = runif(200))
있다고 가정 할. df$x
의 첫 번째 n
값 df$z
df$y
를 교체하고 df$y
나는 다음과 같은 두 가지 예제를 보았다
- : 내가 좋아하는 것 데이터 조작의 두 시나리오는 드롭 다운을 사용하여 달성하기 위해 , 쉽게 재현 할 수 있습니다 : https://plot.ly/r/dropdowns/
그러나 inf를 전달하는 방법을 모릅니다. 드롭 다운 선택에 기초하여 플롯 될 데이터에 관한 오믹 (ormation). 예를 들어 시나리오 2의 경우 나는 작동하지 않았다
args = list("data", df[1:n,])
로 그것을 시도했다.시나리오 1의 경우 (예에 따라)가는 길은 각각 흔적을 숨기거나 표시하는 것 같습니다. 이것이 시나리오 2의 유일한 방법입니까?
다른 아이디어가 있습니까?
업데이트 1 : https://plot.ly/~spietrzyk/96/drop-down-menus-styling/ 이것은의 예를 기반으로합니다 재현 예 그래서 여기
추가 내가 시나리오 1. 여기
require(plotly) df <- data.frame(x = runif(200), y = runif(200), z = runif(200)) Sys.setenv("plotly_username"="xxx") #actual credentials replaced Sys.setenv("plotly_api_key"="xxx") #actual credentials replaced p <- plot_ly(df, x = df$x, y = df$y, mode = "markers", name = "A", visible = T) %>% add_trace(mode = "markers", y = df$z, name = "B", visible = T) %>% layout( title = "Drop down menus - Styling", xaxis = list(domain = c(0.1, 1)), yaxis = list(title = "y"), updatemenus = list( list( y = 0.7, buttons = list( list(method = "restyle", args = list("visible", list(TRUE, TRUE)), label = "Show All"), list(method = "restyle", args = list("visible", list(TRUE, FALSE)), label = "Show A"), list(method = "restyle", args = list("visible", list(FALSE, TRUE)), label = "Show B"))) )) plotly_POST(p)
결과에서 원하는 것을 달성 한 예이다 https://plot.ly/r/dropdowns/
그러나에 대한 변경을 트리거하는 대신 플롯 할 데이터를 전달할 수 있는지 궁금합니다.개별 흔적의 속성.
p <- plot_ly(df, x = df$x, y = df$y, mode = "markers", name = "A", visible = T) %>% layout( title = "Drop down menus - Styling", xaxis = list(domain = c(0.1, 1)), yaxis = list(title = "y"), updatemenus = list( list( y = 0.7, buttons = list( list(method = "restyle", args = list("y", df$y), label = "Show A"), list(method = "restyle", args = list("y", df$z), label = "Show B"))) ))
결과 여기 : https://plot.ly/~spietrzyk/98/drop-down-menus-styling/ 이 방법은 작동하지 않을 수
df$z
의 데이터가 그리드 (https://plot.ly/~spietrzyk/99/)에 게시되지 않기 때문에 내가 노력한 가지는 다음이었다.
그래서 모든 추적을 플로팅하고 드롭 다운 선택에 따라
visible
속성을 전환하는 것보다 드롭 다운 선택을 기반으로 플로팅되도록 데이터를 조작해야합니다.
정확하게 코드 우리를 보여주는 (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)는 [재현 예]를 제공하기 위해 시도하십시오 하고 있었다. '플롯 (plotly) '을 호출하는 방법이나 당신이 그 args를 붙인 곳을 명확하게 밝히지는 않습니다. 이렇게하면보다 쉽게 도움을받을 수 있습니다. – MrFlick
솔직하게 말해 R API에 익숙하지 않아 내 의견이 제한적으로 유용 할 수 있지만 적극적인 개발 기능입니다. updatemenus 명령을 통해 직접 데이터를 전달할 수 있지만이를 용이하게하기 위해 새로운 '프레임'개념이 있습니다. 'plotly.js'에 대한'animation' 문서에는 몇 가지 예가 있습니다 : https://plot.ly/javascript/animations/#defining-named-frames-with-plotlyaddframes 불행히도, 프레임이 R을 통해 접근 가능한지 모르겠습니다. API는 아직 (https://github.com/plotly/plotly.js/issues/1014 참조), 이것이 아마도 만족스런 대답이 아닌 이유입니다. – Ricky
그리고 FWIW는 updatemenus 명령을 통해 직접 데이터를 전달하는 다소 야심적인 예제입니다. http://codepen.io/rsreusser/pen/mAjpkb?editors=0010 다시 R API를 통하지 않음을 사과드립니다. – Ricky