r中的多个图,r中带有过滤器

Posted

技术标签:

【中文标题】r中的多个图,r中带有过滤器【英文标题】:multiple plots in r with filter in r 【发布时间】:2021-09-09 08:55:40 【问题描述】:

早安,

我正在尝试使用我的代码设置多个绘图。 目前我只能绘制一个复选框输入数据

是否 any1 有一个想法,我可以如何更改我的服务器代码,以便它可以在一个图中绘制多个图形?

这是我工作 atm 的图片 https://i.stack.imgur.com/M6xcz.png

提前致谢

    ui <- fluidPage(
    titlePanel("Corona Testungszahlen"),
    sidebarLayout(
        sidebarPanel( h5("Hier koennen sie die Wochenspanne auswaehlen:"),
                      sliderInput("Wocheninput", "Kalenderwoche",11, 75, c(25, 40)),
                      uiOutput("slider"),
                      
                      checkboxGroupInput("plots", "Waehlen sie ihre Daten:", 
                                         choices=list("Anzahl_Testungen","Positiv_Getestet","Positivanteil_Prozent"), 
                                         selected="Anzahl_Testungen")),
        mainPanel(
            plotOutput("PLOT")
        )
    )
)


 server <- function(input, output) 
     output$PLOT <- renderPlot(
         filtered <-
             Daten %>%
             filter(Woche >= input$Wocheninput[1],
                    Woche <= input$Wocheninput[2]
             )
         ggplot(filtered, aes(Woche, .data[[input$plots]])) +
             geom_line(color="blue", size=1.2)
     )
 
 

【问题讨论】:

【参考方案1】:

获取长格式数据并过滤您要绘制的列。在ggplot代码中指定列名为color

library(tidyverse)
library(shiny)

cols <- c("Anzahl_Testungen","Positiv_Getestet","Positivanteil_Prozent") 

ui <- fluidPage(
  titlePanel("Corona Testungszahlen"),
  sidebarLayout(
    sidebarPanel( h5("Hier koennen sie die Wochenspanne auswaehlen:"),
                  sliderInput("Wocheninput", "Kalenderwoche",11, 75, c(25, 40)),
                  uiOutput("slider"),
                  
                  checkboxGroupInput("plots", "Waehlen sie ihre Daten:", 
                                     choices=cols,
                                     selected="Anzahl_Testungen")),
    mainPanel(
      plotOutput("PLOT")
    )
  )
)

server <- function(input, output) 
  output$PLOT <- renderPlot(
    filtered <-
      Daten %>%
      filter(Woche >= input$Wocheninput[1],
             Woche <= input$Wocheninput[2]
      ) %>%
      select(Woche, cols) %>%
      pivot_longer(cols = -Woche) %>%
      filter(name %in% input$plots)
    
    ggplot(filtered, aes(Woche, value, color = name)) +
      geom_line(size=1.2)
  )


shinyApp(ui, server)

【讨论】:

嘿! :-) 提前致谢!代码有效!但我实际上想要一个图表中的数据:-D 现在我得到了 3 个并排的图表:-/

以上是关于r中的多个图,r中带有过滤器的主要内容,如果未能解决你的问题,请参考以下文章

R Shiny中的下限和上限的多个滤波器

R中带有误差线的分组条形图

是否可以对 R 中的图像进行伽玛过滤器?

一个单元格中带有(多个数组 - 多个表)的 FILTER 函数 - Excel

Pyspark Dataframe 组通过过滤

r R中的语句(过滤器)