gpt4 book ai didi

R - Shiny 的包裹 - 将情节发送到 Shiny

转载 作者:行者123 更新时间:2023-12-04 10:56:31 25 4
gpt4 key购买 nike

我要构建一个网页,根据用户输入的簇数对鸢尾花数据进行聚类。它使用 K 均值算法对数据进行聚类并显示聚类数据图。它不起作用,我不知道为什么。我从这个链接开始: http://rstudio.github.io/shiny/tutorial/#sending-images

这是我的文件:ui.R

    library(shiny)

shinyUI(pageWithSidebar(
headerPanel("Clustering iris Data"),
sidebarPanel(
sliderInput("k", "Number of clusters:",
min = 1, max = 5, value = 3)
),
mainPanel(
# Use imageOutput to place the image on the page
imageOutput("myImage")
)
))

和server.R

library(shiny)
library(caret)
library(ggplot2)
data(iris)

inTrain <- createDataPartition(y=iris$Species, p=0.7, list=FALSE)
training <- iris[inTrain,]
testing <- iris[-inTrain,]

shinyServer(function(input, output, session) {
output$myImage <- renderImage({
# A temp file to save the output.
# This file will be removed later by renderImage
outfile <- tempfile(fileext='.png')


kMeans1 <- kmeans(subset(training,select=-c(Species)),centers=input$k)
training$clusters <- as.factor(kMeans1$cluster)

# Generate the PNG
png(outfile, width=400, height=600)
qplot(Petal.Width,Petal.Length,colour=clusters,data=training,main="iris Data Clusters")
print(qplot)
#plot(training$Petal.Width,training$Petal.Length,colour=clusters,data=training,main="iris Data Clusters")
#hist(rnorm(input$k), main="Generated in renderImage()")
#myImage

dev.off()


# Return a list containing the filename
list(src = outfile,
contentType = 'image/png',
width = 400,
height = 600,
alt = "This is alternate text")
}, deleteFile = TRUE)

})

最佳答案

我认为你只需要改变

qplot(Petal.Width,Petal.Length,colour=clusters,data=training,main="iris Data Clusters")
print(qplot)

像这样:

qP <- qplot(
Petal.Width,Petal.Length,
colour=clusters,data=training,
main="iris Data Clusters")
print(qP)

因为您对 qplot() 的调用实际上并未创建对象;这就是为什么 print(qplot) 在控制台打印 qplot 的函数定义。 enter image description here

关于R - Shiny 的包裹 - 将情节发送到 Shiny ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24869068/

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