You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

共享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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:24:03