gpt4 book ai didi

r - Shiny :将数据集中选定的列绘制到图表中

转载 作者:行者123 更新时间:2023-12-01 23:20:43 25 4
gpt4 key购买 nike

只是发现了 Shiny 的应用程序,但这让我发疯......我已经查看了许多 server.R 和 ui.R 代码的示例,但无法弄清楚我做错了什么。如果这是非常基本的事情,请提前道歉......

以 iris 数据集为例,我想将一列与另一列进行比较,使用 qplot 或最好使用 ggplot 进行简单的绘制

但是,使用 qplot 我得到这个: qplot output

并使用ggplot2,我收到错误: ggplot output

我认为我不需要 react 函数,因为我没有对数据集进行子集化,只是提取要绘制的列。

服务器.R代码

library(shiny)
library(shinyapps)
library(ggplot2)

shinyServer(function(input, output, session) {

output$text1 <- renderText({input$id1})

output$text2 <- renderText({input$select1})

output$plot1 <- renderPlot({
g <- qplot(Sepal.Length, input$select1, data = iris)
print(g)
})

})

或使用ggplot函数来替换qplot调用

            g <- ggplot(iris, aes(x = Sepal.Length, y = input$select1)) 
g <- g + geom_line(col = "green", lwd =1) +
labs(x = "Date", y = "Ranking") +
theme_bw() + scale_y_reverse()

ui.R代码

library(shiny)
library(shinyapps)
data(iris)
opts <- unique(colnames(iris))
opts <- opts[-1] ## want to keep Sepal.Length as the x values

shinyUI(pageWithSidebar(
headerPanel('test with iris database'),
sidebarPanel(
selectInput(inputId = "select1", label = "select",
choices = opts),
textInput(inputId = "id1", label = "Input Text", "")
),
mainPanel(
p('Output text1'),
textOutput('text1'),
textOutput('text2'),
plotOutput('plot1')
)
))

最佳答案

aes 语句更改为 aes_string 并将 x 设为字符串。这应该可以解决问题。

g <- ggplot(iris, aes_string(x = "Sepal.Length", y = input$select1)) 
g <- g + geom_line(col = "green", lwd =1) +
labs(x = "Date", y = "Ranking") +
theme_bw() + scale_y_reverse()

关于r - Shiny :将数据集中选定的列绘制到图表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26001032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com