【问题标题】:shiny Ui - refer to same plot multiple times闪亮的 Ui - 多次参考同一个情节
【发布时间】:2021-04-16 16:26:03
【问题描述】:

我构建了一个闪亮的应用程序,最终应该可以支持多种语言。

因此,在我的 UI 中,我想多次引用相同的图。

但是,我似乎只能参考 outplut$plot 一次 - 如果我多次这样做,则看不到任何绘图。

所以我的问题是:如何从 UI 中多次引用同一个图?

请在下面找到一个最低限度的工作示例。如果我在 UI 中注释掉“plot2”,它就可以工作。如果我不这样做,两个情节都会消失。

来自柏林的祝福(:


library(shiny)
library(ggplot2)
library(plotly)

y <- c(1:30)
x <- c(1:30)
data <- as.data.frame(cbind(y, x))

plot <- renderPlotly(
    ggplotly(
        ggplot(data, aes(x=x, y=y)) +
            geom_point() 
    )
)

# Define UI for application that draws a histogram
ui <- fluidPage(
    "plot1", 
                       plotlyOutput("plot", width = "100%"), 
    # "plot2",
    #                    plotlyOutput("plot", width = "100%")

               
)

# Define server logic required to draw a histogram
server <- function(input, output) {

    output$plot <- renderPlotly({
        ggplotly(
            ggplot(data, aes(x=x, y=y)) +
                geom_point()
        )
    })
    
}

# Run the application 
shinyApp(ui = ui, server = server)


【问题讨论】:

    标签: r user-interface shiny plotly


    【解决方案1】:

    我相信您不能两次使用相同的输出,因为这些图在 html 中将具有相同的 ID。此外,还不清楚为什么您需要针对您的特定问题这样做,您是否需要显示相同的图两次?

    否则,您可以尝试将“语言相关”逻辑添加到服务器端,也许?例如

    output$plot <- renderPlotly({
        if (current_language() == 'English') {
            ...
        } else {
            ... 
        }
    })
    

    作为一种解决方法,您可以尝试将绘图保存到一个对象,例如

    plot <- ggplotly(
                ggplot(data, aes(x=x, y=y)) +
                    geom_point()
    ) 
    

    然后用它来创建两个输出(虽然名称不同)

    【讨论】:

    • bonsoir claude & merci pour ton avis (: @why?我基本上复制了应用程序四次,并为四种语言中的每一种创建了面板。你知道最聪明的方法吗?你的头?@replication 这就是我的想法,感谢您的确认
    • 哦,我以为用户选择了整个应用程序的语言,但似乎你一次显示了所有元素。我的意思是,你可以在一个循环中创建所有元素或其他东西......但如果应用程序不是很大,我会像你一样复制所需的输出。
    • 不,我只是使用了 navbarPage 和四个不同的 navbarMenus .. 偶然发现了 shiny.i18n,然后考虑实现它..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 2014-09-12
    • 1970-01-01
    • 2018-04-03
    • 2017-08-12
    • 2018-01-31
    • 2017-11-07
    相关资源
    最近更新 更多