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

如何在R语言中使用echart4r包实现坐标轴标签置于条形图内?

问题描述

这是我想要实现的效果:
目标条形图效果

我正尝试在R语言中使用echart4r包复现上图(标签置于条形内的条形图)。为了让坐标轴标签显示在条形内,我在e_x_axis()中使用了**axisLabel = list(inside = TRUE)**,代码如下,但标签被条形遮挡,无法正常显示:

Name <- c("Jon", "Bill", "Maria", "Ben", "Tina")
Age <- c(23, 41, 32, 58, 26)

df <- data.frame(Name, Age)

df %>% 
  e_charts(Name) %>% 
   e_bar(Age) %>% 
    e_x_axis(
      inverse = TRUE,
      axisLabel = list(inside = TRUE),
      axisTick = list(show = FALSE),
      axisLine = list(show = FALSE)
      
    ) %>% 
    e_legend(show = FALSE) %>% 
    e_flip_coords()

当前得到的效果:
当前遮挡效果

解决办法

可以通过调整元素层级解决标签遮挡问题,两种方式任选其一:

方式1:提升坐标轴标签层级

在axisLabel参数中添加z = 10(数值只要大于条形默认层级即可),让标签显示在条形上方:

Name <- c("Jon", "Bill", "Maria", "Ben", "Tina")
Age <- c(23, 41, 32, 58, 26)

df <- data.frame(Name, Age)

df %>% 
  e_charts(Name) %>% 
  e_bar(Age) %>% 
  e_x_axis(
    inverse = TRUE,
    axisLabel = list(inside = TRUE, z = 10),  # 添加z属性提升标签层级
    axisTick = list(show = FALSE),
    axisLine = list(show = FALSE)
  ) %>% 
  e_legend(show = FALSE) %>% 
  e_flip_coords()

方式2:降低条形层级

在e_bar函数中设置z = -1,让条形显示在标签下方:

Name <- c("Jon", "Bill", "Maria", "Ben", "Tina")
Age <- c(23, 41, 32, 58, 26)

df <- data.frame(Name, Age)

df %>% 
  e_charts(Name) %>% 
  e_bar(Age, z = -1) %>%  # 设置条形层级为-1
  e_x_axis(
    inverse = TRUE,
    axisLabel = list(inside = TRUE),
    axisTick = list(show = FALSE),
    axisLine = list(show = FALSE)
  ) %>% 
  e_legend(show = FALSE) %>% 
  e_flip_coords()

如果需要更美观的效果,还可以配合调整条形宽度,比如在e_bar中加入barWidth = "70%",给标签留出更合适的显示空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:06:23