2016-07-27 3 views
1

나는 반짝이는 음모를 꾸몄다. 나는 많은 포인트를 클릭하여 테이블에 표시 할 수 있기를 원합니다. 줄거리가 훌륭하게 작동하고 있으며 테이블에 표시하기 위해 1 개의 plotly_click (event_data()를 통해)을 얻을 수 있습니다. 어떻게 많은 event_data 포인트의 벡터를 성장시킬 수 있습니까? 다음은 몇 가지 샘플 코드입니다. d_save에서 이벤트를 저장하려고했습니다. 감사.R 반짝이에서 plotly_click에서 많은 포인트를 표시하는 방법?

library(shiny) 
library(plotly) 

data1 <- data.frame(cbind(seq(1,1000,1),seq(1,1000,1)*5)) 
colnames(data1) <- c('index','data') 
data_points <- data.frame(cbind(seq(1,1000,5),seq(1,1000,5)*5)) 
colnames(data_points) <- c('index','data') 


ui <- fluidPage(
    plotlyOutput("plot1"), 
    tableOutput("dataTable") 
) 

d_save <- vector() 

server <- function(input, output, session) { 

    # make plotly plot 
    output$plot1 <- renderPlotly({ 
    p <- plot_ly(data1, x = data1$index, y = data1$data,mode = "lines") 
    add_trace(p, x = data_points$index, y = data_points$data, mode = "markers") 
    }) 

    # show table of stances 
    output$dataTable <- renderTable({ 
     d <- event_data("plotly_click") 
     d_save <- c(d_save,d$pointNumber[2]+1) 
     data.frame(d_save) 
    }) 
} 

shinyApp(ui, server) 

답변

2

심각하게 잘못된 것은 없으며 결코 답을 얻지 못했습니다. 순수한 음모의 나쁜 예가 아닙니다 (ggplot을 사용하지 않고). (청소기 것 여기 reactiveValues 사용) d_save <<- c(...)d_save <- c(...) 할당을 변경

  • :

    나는하여 고정. 겉으로는 일부 설정합니다 (type=scatter 기본처럼) 이월 할 수있는 파이프가되도록 plotly 전화를 변경
  • - 경고를 제거을 :
  • 지정되지 추적 유형

: 정보를 바탕으로 제공되지하는 'scatter'trace 이 적절합니다.

  • d_save 할당에 "오프 별 하나"인덱싱 오류를 수정했습니다.
  • layout(...)을 추가하면 제목을 붙일 수 있습니다 (많은 경우 유용합니다).

결과 코드 :

library(shiny) 
library(plotly) 

data1 <- data.frame(cbind(seq(1,1000,1),seq(1,1000,1)*5)) 
colnames(data1) <- c('index','data') 
data_points <- data.frame(cbind(seq(1,1000,5),seq(1,1000,5)*5)) 
colnames(data_points) <- c('index','data') 

ui <- fluidPage(
    plotlyOutput("plot1"), 
    tableOutput("dataTable") 
) 

d_save <- vector() 

server <- function(input, output, session) { 

    # make plotly plot 
    output$plot1 <- renderPlotly({ 
    plot_ly(data1, x=data1$index, y=data1$data,mode = "lines") %>% 
     add_trace(x = data_points$index, y=data_points$data, mode = "markers") %>% 
     layout(title="Plotly_click Test") 
    }) 

    # show table of point markers clicked on by number 
    output$dataTable <- renderTable({ 
    d <- event_data("plotly_click") 
    d_save <<- c(d_save,d$pointNumber[1]+1) 
    data.frame(d_save) 
    }) 
} 
shinyApp(ui, server) 

이미지 :

enter image description here

+0

날에 대한 피드백? –

+0

긴 연체되었지만 감사합니다. – sajawa

+0

감사합니다. 너무 늦지 않았습니다. 하지만 그 대답을 받아들이라고 요청할 수도 있니? upvote/downvote 아래의 작은 확인 표시를 클릭하십시오. 그것도 당신에게 포인트를 가져옵니다. –

관련 문제