使用R的组数据的交互式绘图

时间:2017-06-23 18:24:05

标签: r plot ggplot2 interactive

所有

为了绘制许多组(类别)中的数据:

data(iris)
library(dplyr)
iris_new <- select(iris, -Species)
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + 
        geom_point(data = iris_new, colour = "grey70") +
        geom_point(aes(colour = Species)) +
        facet_wrap(~Species)

The result is shown here

之前我没有制作过互动图,但我想知道一种让我以交互方式制作上图的方法。例如,我不想使用facet显示数据,而是希望有一个类似于底部的内容或向下滚动列表功能,我可以单击该功能以交互方式突出显示不同组的数据。每次我点击某个组名(如用于图例的组名)时,我都会看到组数据突出显示,其他数据显示为灰色。这里有什么想法?谢谢。

1 个答案:

答案 0 :(得分:1)

您可以通过shiny进行互动展示。见这里:https://shiny.rstudio.com/

您可以运行以下代码:

library(shiny)
library(dplyr)
library(ggplot2)
data(iris)

ui <- fluidPage(
  selectInput('species','Species',c("setosa","versicolor","virginica")),
  plotOutput("plot")
)

server <- function(input, output) {
  iris_new <- select(iris, -Species)

  output$plot <- renderPlot({
    ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + 
      geom_point(data = iris_new, colour = "grey70") +
      geom_point(data=iris[iris$Species==input$species,],aes(colour = Species))
  })


}

shinyApp(ui = ui, server = server)