library(shiny)
library(ggplot2)
library(plotly)
a=c("Female","Female","Male","Female","Male")
b=c("Yes","No","No","Yes","No")
c=c("Yes","Yes","Yes","No","No")
Mydata=data.frame(gender=a,SeniorCitizen=b,Churn=c)
ggplot(Mydata)+geom_bar(aes(gender,fill=Churn))+
ggtitle("Categorical Variable vs Target Variable")+theme(plot.title = element_text(hjust = 0.5))
ui = shinyUI(fluidPage(
headerPanel(title="Features Review"),
sidebarPanel(
selectInput("Variable","Select A Categorical Variable", list("gender"="gender","SeniorCitizen"="SeniorCitizen"))),
mainPanel(
titlePanel(title="Categorical Variable Visualization"),plotOutput("CPlots"))
))
server = shinyServer(function(input, output) {
df <- reactive({
if(input$Variable == "SeniorCitizen") {
data <- Mydata %>%
filter(SeniorCitizen == "Yes")
return(data)
} else {
data <- Mydata
return(data)
}
})
output$CPlots = renderPlot({
ggplot(data=df(), aes(x = Churn, y = input$Variable,fill=Churn)) +
geom_bar(stat="identity", color="black") +
theme_minimal() +
ggtitle("Categorical Variable vs Target Variable")+theme(plot.title = element_text(hjust = 0.5))
})
})
shinyApp(ui,server)
Это работает, но ваш график не изменит ничего, кроме категорий на оси у, потому что geom_bar
считает только переменную на группу. Может быть, вы хотите что-то фильтровать? Я предоставил вам некоторый код, где вы можете увидеть изменения при изменении selectInput.