我正在尝试使用Shiny创建一个应用程序,我希望用户能够选择绘图中每一行的颜色 . 一般的想法是在应用程序中导入数据,然后在数据中绘制每个变量 . 我尝试使用shinysky软件包中的colorpicker'jscolorInput',当放在ui.r文件中时,它可以正常工作,但由于我希望我的应用程序对于每个上传的数据集都是动态的,我需要将颜色选择器放在服务器中 . R,使用反应函数 . 当放在服务器中时,'jscolorInput'不起作用 .
我想做的是:
重现颜色选择器的次数与数据中的变量数一样多
从颜色中获取输入并将其作为颜色参数传递给绘图
我在闪亮的开发和stackoverflow都是新手,所以请原谅我的错误 .
这是一个可重复的示例,不起作用 .
require(shinysky)
require(shiny)
dat
runApp(list(
ui = bootstrapPage(
# The reactive colorpicker
uiOutput('myPanel'),
# The plot
plotOutput('plot')
),
server = function(input, output) {
# Print as many colorpickers as the columns in the dataset
cols
n
for(i in 1:n){
print(jscolorInput(paste("col", i, sep="_")))
}
})
output$myPanel
# Put all the input in a vector
colors
n
lapply(1:n, function(i) {
input[[paste("col", i, sep="_")]]
})
})
output$plot
cols
plot(dat[,1], col= paste0("#", cols[1], ""))
for(i in 2:ncol(dat))lines(dat[,i], col=cols[i])
})
}
))