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

如何在ggplot中创建条形图轮廓?附实现示例代码

用ggplot2绘制条形图轮廓

要实现仅显示条形边框的效果,你可以通过以下两种方式修改代码:

方法一:使用geom_bar快速实现

直接利用geom_bar,将填充色设为透明,只保留边框:

library(tidyverse)

level <- c("a", "b", "c", "d", "e", "f", "g")
value <- c(8.1, 5.6, 3.2, 4.4, 3.5, 2.5, 1.8)

tbl <- tibble(level = level, 
              value = value)

ggplot(data = tbl,
       aes(x = level, 
           y = value)) + 
  geom_bar(stat = "identity", fill = NA, color = "black", size = 1) + # 填充透明,设置边框颜色和粗细
  theme_bw()

方法二:使用geom_rect自定义边框

如果需要更精细地控制条形的位置和边框样式,可以用geom_rect手动绘制每个条形的轮廓:

library(tidyverse)

level <- c("a", "b", "c", "d", "e", "f", "g")
value <- c(8.1, 5.6, 3.2, 4.4, 3.5, 2.5, 1.8)

tbl <- tibble(level = level, 
              value = value) %>%
  mutate(
    x_num = as.numeric(factor(level)), # 将分类变量转为数值
    x_min = x_num - 0.4, # 条形左边界
    x_max = x_num + 0.4  # 条形右边界
  )

ggplot(data = tbl) +
  geom_rect(
    aes(xmin = x_min, xmax = x_max, ymin = 0, ymax = value),
    fill = NA, color = "black", size = 1
  ) +
  scale_x_continuous(breaks = tbl$x_num, labels = tbl$level) + # 还原分类标签
  theme_bw()

两种方法都能实现你想要的条形轮廓效果,第一种更简洁,第二种适合需要调整条形宽度、位置等自定义场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 11:24:23