r-闪亮的应用程序没有显示错误或警告
发布时间:2022-09-07 18:49:06 366
相关标签: # 数据# 信息
首先,我想说,这是我第一天使用R Shiny package,所以如果我问了一些非常琐碎的问题,请耐心等待。
我试图创建一个用户界面,它支持用户选择显示类型(均值的箱线图或散点图),变量(取决于数据集),以及组(也取决于数据集)。
如果有人能给我一些反馈,告诉我哪里可能出错,我将不胜感激。基本上,R没有给我任何错误信息,但当我运行应用程序时,它没有显示绘图。
我写道:
library(shiny)
library(tidyverse)
#source("helpers.R")
namel<-function (vec){
tmp<-as.list(vec)
names(tmp)<-as.character(unlist(vec))
tmp
}
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("Breast DCIS Visualization"),
# inputs
sidebarPanel(
uiOutput("variable"), # depends on dataset ( set by output$variable in server.R)
uiOutput("group"),
selectInput("plot.type", "Plot Type:",
choices=c("Boxplot"="boxplot", "Scatter Plot"="scatterplot"))
),
# outputs
mainPanel(
h3(textOutput("caption")),
uiOutput("plot") # depends on input
)
)
# Define server logic required to draw a histogram
server <- function(input, output) {
#update variable and group based on dataset
dataset <- bind_rows(NORMAL, DCIS, IDC)
dataset$label <- as.factor(dataset$label)
output$variable <- renderUI({
var.opts <- namel(colnames(dataset))
selectInput("variable","Variable:", var.opts) # update UI
})
output$group <- renderUI({
group.opts <- namel(levels(dataset$label))
selectInput("group","Group:", group.opts) # update UI
})
output$caption<-renderText({
switch(input$plot.type,
"boxplot" = "Boxplot",
"scatterplot" = "Scatter Plot")
})
output$plot <- renderUI({
plotOutput("p")
})
#plotting function using ggplot2
output$p <- renderPlot({
plot.obj <- list()
plot.obj$data <- dataset
plot.obj$variable <- with(plot.obj$data, get(input$variable))
plot.obj$group <- with(plot.obj$data, get(input$group))
#dynamic plotting options
plot.type <- switch(input$plot.type,
"boxplot" = geom_boxplot(),
"scatterplot" = geom_point()
)
require(ggplot2)
#plotting theme
.theme<- theme(
axis.line = element_line(colour = 'gray', size = .75),
panel.background = element_blank(),
plot.background = element_blank()
)
if(input$plot.type=="boxplot"){
p <- ggplot(plot.obj$data,
aes(x = plot.obj$group,
y = plot.obj$variable,
fill = as.factor(plot.obj$group)))+ plot.type
} else {
p <- ggplot(plot.obj$data,
aes(x = plot.obj$variable,
fill = as.factor(plot.obj$group),
group = as.factor(plot.obj$group))) + plot.type
}
p <- p + labs(
fill = input$group, x = "", y = input$variable) + .theme
print(p)
})
}
# Run the application
shinyApp(ui = ui, server = server)
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报