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

如何在Plotly X轴上显示所有年份刻度?

问题:强制Plotly图表X轴显示每年刻度

我希望在图表的X轴上展示数据集中的每一个年份。以下是我编写的R语言Plotly代码:

year <- c("2011-01-01", "2012-01-01", "2013-01-01", "2014-01-01", "2015-01-01", "2016-01-01",
          "2017-01-01", "2018-01-01", "2019-01-01", "2020-01-01", "2021-01-01", "2022-01-01",
          "2023-01-01", "2024-01-01")
value <- c(299, 233, 344, 454, 556, 345, 678,
            345, 565, 500, 245, 644, 663, 544)
xx <- data.frame(year, value)
xx$year <- as.Date(xx$year)

plot_ly(xx, 
                  type   = "scatter", 
                  mode   = "lines",
                  #color  = "lightgreen",
                  line   = list(),
                  width  = 700, 
                  height = 400)  |>
  add_trace(x         = ~year, 
            y         = ~value,
            hoverinfo = "y"
  ) 

当前生成的图表X轴每两年显示一次刻度,请问能否强制设置为显示每一年的刻度?我可以接受调小字体大小。


解决方案

可以通过layout()函数配置X轴属性,强制显示每年刻度并调整字体大小:

修改后的完整代码

year <- c("2011-01-01", "2012-01-01", "2013-01-01", "2014-01-01", "2015-01-01", "2016-01-01",
          "2017-01-01", "2018-01-01", "2019-01-01", "2020-01-01", "2021-01-01", "2022-01-01",
          "2023-01-01", "2024-01-01")
value <- c(299, 233, 344, 454, 556, 345, 678,
            345, 565, 500, 245, 644, 663, 544)
xx <- data.frame(year, value)
xx$year <- as.Date(xx$year)

plot_ly(xx, 
        type   = "scatter", 
        mode   = "lines",
        line   = list(),
        width  = 700, 
        height = 400)  |>
  add_trace(x         = ~year, 
            y         = ~value,
            hoverinfo = "y") |>
  layout(
    xaxis = list(
      dtick = "M12",  # 设置刻度间隔为12个月(每年一个刻度)
      tickfont = list(size = 10)  # 调小刻度字体避免拥挤
    )
  )

关键配置说明

  • dtick="M12":明确指定X轴刻度间隔为12个月,确保每个年份都生成一个刻度
  • tickfont = list(size = 10):缩小刻度字体大小,防止年份标签重叠,你可以根据图表宽度调整这个数值

内容的提问来源于stack exchange,提问作者JontroPothon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:08:17