español - Entrada de color dinámica en servidor brillante
manual de navisworks 2018 en español pdf (1)
Aquí hay una versión de trabajo de lo que estás tratando de hacer. Mire las diferencias entre nuestro código, hubo algunos problemas con su código. Además, tenga en cuenta que no estoy usando shinysky
porque ya no tiene el colourpicker (se mueve a un paquete diferente que está inactivo), así que en su lugar estoy usando inputColour
de shinyjs
.
library(shiny)
library(shinyjs)
dat <- data.frame(matrix(rnorm(120, 2, 3), ncol=3))
runApp(shinyApp(
ui = fluidPage(
uiOutput(''myPanel''),
plotOutput("plot")
),
server = function(input, output, session) {
cols <- reactive({
lapply(seq_along(dat), function(i) {
colourInput(paste("col", i, sep="_"), "Choose colour:", "black")
})
})
output$myPanel <- renderUI({cols()})
# Put all the input in a vector
colors <- reactive({
lapply(seq_along(dat), function(i) {
input[[paste("col", i, sep="_")]]
})
})
output$plot <- renderPlot({
if (is.null(input$col_1)) {
cols <- rep("#000000", ncol(dat))
} else {
cols <- unlist(colors())
}
plot(dat[,1], col = cols[1])
for(i in 2:ncol(dat)) lines(dat[,i], col = cols[i])
})
}
))
Descargo de responsabilidad: soy el autor de shinyjs
Intento crear una aplicación usando Shiny, donde quiero que el usuario pueda seleccionar el color de cada línea en un diagrama. La idea general es importar los datos en la aplicación y luego trazar cada variable en los datos. Traté de usar el colorpicker ''jscolorInput'' del paquete shinysky, que funciona bien cuando se coloca en el archivo ui.r, pero como quiero que mi aplicación sea dinámica para cada conjunto de datos cargado, necesito poner el colorpicker en el servidor. R, usando una función reactiva. Cuando se coloca en el servidor, la ''jscolorInput'' no funciona.
Lo que quiero hacer es:
- Reproduzca el colorpicker tantas veces como la cantidad de variables en los datos
- Tome la entrada del color y páselo como argumento de color en la trama
Soy muy nuevo en desarrollo brillante y stackoverflow, así que disculpen mis errores.
Aquí hay un ejemplo reproducible que no funciona.
require(shinysky)
require(shiny)
dat <- data.frame(matrix(rnorm(120, 2, 3), ncol=3))
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 <- reactive({
n <- ncol(dat)
for(i in 1:n){
print(jscolorInput(paste("col", i, sep="_")))
}
})
output$myPanel <- renderPrint({cols()})
# Put all the input in a vector
colors <- reactive({
n <- ncol(dat)
lapply(1:n, function(i) {
input[[paste("col", i, sep="_")]]
})
})
output$plot <- renderPlot({
cols <- ifelse(is.null(input$col_1), rep("000000 ", n), colors())
plot(dat[,1], col= paste0("#", cols[1], ""))
for(i in 2:ncol(dat))lines(dat[,i], col=cols[i])
})
}
))