在使用 plotly::subplot
函数创建子图时,注释标题在 R Shiny 中消失的问题可能是由于 Shiny 的动态更新机制导致的。Shiny 是一个用于构建交互式 web 应用的 R 包,当你在 Shiny 应用中使用 plotly::subplot
时,可能会遇到注释标题在某些情况下消失的情况。
plotly::subplot
的布局设置可能会影响注释标题的显示。reactiveValues
和 renderPlotly
通过使用 reactiveValues
和 renderPlotly
,可以确保每次更新时都重新生成注释标题。
library(shiny)
library(plotly)
ui <- fluidPage(
plotlyOutput("plot")
)
server <- function(input, output) {
data <- reactiveValues(
plot_data = list(
plot1 = ggplot(mtcars, aes(x = mpg, y = hp)) + geom_point() + labs(title = "Plot 1"),
plot2 = ggplot(mtcars, aes(x = mpg, y = wt)) + geom_point() + labs(title = "Plot 2")
)
)
output$plot <- renderPlotly({
subplot(
ggplotly(data$plot_data$plot1),
ggplotly(data$plot_data$plot2)
)
})
}
shinyApp(ui, server)
在 ggplotly
转换后手动添加注释标题。
library(shiny)
library(plotly)
library(ggplot2)
ui <- fluidPage(
plotlyOutput("plot")
)
server <- function(input, output) {
data <- reactiveValues(
plot_data = list(
plot1 = ggplot(mtcars, aes(x = mpg, y = hp)) + geom_point(),
plot2 = ggplot(mtcars, aes(x = mpg, y = wt)) + geom_point()
)
)
output$plot <- renderPlotly({
p1 <- ggplotly(data$plot_data$plot1) %>% layout(title = "Plot 1")
p2 <- ggplotly(data$plot_data$plot2) %>% layout(title = "Plot 2")
subplot(p1, p2)
})
}
shinyApp(ui, server)
通过上述方法,可以有效解决 plotly::subplot
注释标题在 R Shiny 中消失的问题。
领取专属 10元无门槛券
手把手带您无忧上云