1

我正在使用 Rstudio 在 R 中创建一个 flexdashboard / Shiny 应用程序,并尝试创建一个包含两个组件的仪表板:顶部的平行坐标图和图下方的表格。

我正在尝试使用刷子和链接来选择平行坐标图中的特定轴以影响和过滤表中的数据。

下面是我的代码(改编自https://jjallaire.shinyapps.io/shiny-ggplot2-brushing/):

    ---
    title: "ggplot2 Brushing"
    output: 
      flexdashboard::flex_dashboard:
        orientation: columns
        social: menu
        source_code: embed
    runtime: shiny
    ---

    ```{r global, include=FALSE}
    # load data in 'global' chunk so it can be shared by all users of the dashboard
    library(datasets)
    mtcars2 <- mtcars[, c("mpg", "cyl", "wt")]
    ```


    ```{r}
    # Reactive that returns the whole dataset if there is no brush
    selectedData <- reactive({
      data <- brushedPoints(mtcars2, input$plot1_brush)
      if (nrow(data) == 0)
        data <- mtcars2
      data
    })
    ```

    Column {data-width=650}
    -----------------------------------------------------------------------

    ### Miles Per Gallon vs. Weight {data-width=600}

    ```{r}
    library(ggplot2)
    library(GGally)
    plotOutput("plot1", brush = brushOpts(id = "plot1_brush"))
    output$plot1 <- renderPlot({
      ggparcoord(mtcars2) + geom_line()
    })
    ```

    ### Car Details {data-width=400}

    ```{r}
    renderTable({
      selectedData()
    }, rownames = TRUE)
    ```

如您所见,刷牙和链接不起作用。我在这里想念什么?我已经阅读了一些关于该主题的问题,特别是关于 XY 变量的问题,并且只适用于散点图等。但肯定有解决这个问题的方法,我似乎找不到解决方案。有人知道如何在 Shiny 中使用平行坐标进行刷牙和链接工作吗?

4

1 回答 1

0

我试图为您的问题找到解决方案,但实际上目前无法使用brush任何平行坐标图(无论是plotly还是ggplot2)来检索数据。您可以轻松地在 中使用画笔plotly,但您将无法从中获取数据(在您的情况下是selectedData())。也许你应该尝试另一种情节类型。

于 2017-07-25T08:15:28.873 回答