共享X轴的Plotly子图如何为每个子图单独显示X轴(R语言场景)
解决方法
你只需要在subplot()生成的plotly对象后,手动指定每个子图的X轴显示配置即可,修改后的完整可运行代码如下:
library(ggplot2) library(plotly) library(shinydashboard) library(shinyWidgets) a <- data.frame(Date = seq.Date(as.Date("2000-01-01"), as.Date("2000-12-31"), "day"), value = rnorm(366)) ui <- dashboardPage( dashboardHeader(title = "Sample App"), dashboardSidebar(), dashboardBody(plotlyOutput("plots", height = "80vh")) ) server <- function(input, output, session) { output$plots <- renderPlotly({ g2 <- g1 <- ggplot(a, aes(x = Date, y = value)) + geom_point() subplot(ggplotly(g1), ggplotly(g2), nrows = 2, shareX = TRUE) %>% layout( # 配置第一个子图的X轴显示 xaxis = list(showticklabels = TRUE, visible = TRUE), # 配置第二个子图的X轴显示 xaxis2 = list(showticklabels = TRUE, visible = TRUE) ) }) } shinyApp(ui = ui, server = server)
如果后续需要增加更多子图,只需要在layout参数中依次添加xaxis3、xaxis4……的配置,分别对应第3、第4……个子图的X轴即可。
内容的提问来源于stack exchange,提问作者Austin Gilbert
相关产品推荐
相关产品推荐

