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

柱状图X轴方向调整失效求助(附R语言ggplot2代码)

解决ggplot转ggplotly后X轴文本旋转失效的问题

问题原因

你的代码里存在两个导致X轴文本旋转不生效的问题:

  1. 主题设置顺序错误:theme_minimal() 在自定义的 theme(axis.text.x = element_text(angle = 90, hjust = 1)) 之后调用,会重置所有主题样式,覆盖你之前设置的X轴文本角度。
  2. ggplotly的样式覆盖:即使在ggplot中正确设置了样式,ggplotly转换时可能会部分覆盖这些设置,需要单独针对plotly调整。

解决方案

步骤1:调整ggplot主题顺序

把 theme_minimal() 放在最前面,再添加自定义主题设置,确保自定义样式不会被覆盖:

res1PM$Source <- "Reserva 1P"
res2PM$Source <- "Reserva 2P"
res3PM$Source <- "Reserva 3P"

reservas_totalesM <- rbind(res1PM, res2PM, res3PM)

aM <- ggplot(reservas_totalesM, aes(x = CAMPO_OFICIAL, y = VOLUMEN_ORIGINAL_PETROLEO_MMB, fill = Source)) +
  geom_bar(stat = "identity", position = position_stack()) +
  labs(x = "Campos", y = "Reservas [MMbls]", fill = "Referencia") +
  ggtitle("Reservas totales de aceite en campos marinos") +
  scale_fill_brewer(palette = "Greens") +
  theme_minimal() +  # 先调用基础主题
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))  # 再添加自定义样式

aM_interactivo <- ggplotly(aM)

aM_interactivo

步骤2:针对ggplotly补充设置(如果步骤1后仍失效)

如果转换为ggplotly后X轴文本还是没有旋转,使用plotly的 layout() 函数直接设置X轴的tick角度:

aM_interactivo <- ggplotly(aM) %>%
  layout(xaxis = list(tickangle = 90))

aM_interactivo

这样就能确保X轴文本垂直显示,并且在交互式图表中生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:47:37