r - 为什么我无法在 RShiny 上绘制图表?
问题描述
我想创建一个 RShiny 情节。当我启动应用程序时,侧边栏可见但没有绘图。是什么导致了错误?
这是我的代码:
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectInput('xcol', 'X Variable', dimnames(dat)[[2]],
selected = rownames(dat)),
selectInput('ycol', 'Y Variable', dimnames(dat)[[2]],
selected = colnames(dat)),
selectInput('color', 'Point Color', c("red", "orange", "yellow", "green", "blue", "violet", "purple"))
),
mainPanel(
plotOutput('plot1')
)
)
)
server <- function(input, output) {
selectedData <- reactive({
dat[, c(input$xcol, input$ycol)]
})
output$plot<-renderPlot({
plot(dat$axis(side=1,at=c(1:24),labels=dimnames(dat)[[2]],cex.axis=0.4,las=2), dat$axis(side=2))
}
)
}
shinyApp(ui = ui, server = server)
数据快照
dput(dat[1:2,1:2])
structure(list(cdc15_10 = c(-0.16, NA), cdc15_30 = c(0.09, NA
)), row.names = c("YAL001C", "YAL002W"), class = "data.frame")
解决方案
您的代码存在一些问题:
- 您没有在
selectedData
任何地方使用反应对象。 - 你有,
plotOutput('plot1')
但随后使用output$plot
. 这可能只是一个简单的错字。 - 一般的基础 R 绘图调用看起来很奇怪。我将从基础开始
plot(selectedData())
,然后从那里开始添加轴标签等。
这是一个最小的例子
library(shiny)
dat <- data.frame(a = rnorm(10), b = rnorm(10), c = rnorm(10))
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectInput(
'xcol',
'X Variable',
dimnames(dat)[[2]],
selected = rownames(dat)),
selectInput(
'ycol',
'Y Variable',
dimnames(dat)[[2]],
selected = colnames(dat)),
selectInput(
'color',
'Point Color',
c("red", "orange", "yellow", "green", "blue", "violet", "purple"))
),
mainPanel(plotOutput('plot1'))
)
)
server <- function(input, output) {
selectedData <- reactive({
dat[, c(input$xcol, input$ycol)]
})
output$plot1 <- renderPlot({
plot(selectedData())
})
}
shinyApp(ui = ui, server = server)
产生
推荐阅读
- ios - 在iOS(Swift)中生成多个环境后如何处理问题?
- ios13 - 在导航栏中显示搜索栏和大标题也无需在 iOS 13 上滚动
- android - 使用包含路径和查询参数的(深度)链接打开应用程序
- vue.js - 在 vuetify 中显示不同卡片的标题
- python - 将 Pandas 数据帧作为二维数组循环
- oracle - 阻止用户使用他们的数据库帐户登录
- java - 使用spring jpa编写动态查询的方法
- php - 日期比较在 laravel (PHP) 中不起作用
- android - 如何使用约束布局以编程方式更改 TextView 重力
- virtual-machine - OpenCL 无法在我的虚拟机上运行以下代码