You need to enable JavaScript to run this app. 如何在RStudio中将数据列名作为图表的x轴进行展示
优惠活动
大模型
产品
解决方案
定价
更多

如何在RStudio中将数据列名作为图表的x轴进行展示

你的原始数据参考如下:
数据

操作步骤
  • 依赖包安装加载:优先使用tidyverse生态的工具实现需求,代码如下
# 未安装包先执行 install.packages("tidyverse")
library(tidyverse)
  • 宽表转长表,同时生成分面所需的类别字段
    你当前的数据为宽表结构,需要先转为长表才能将列名映射为x轴维度,同时自动识别数量类、时长类数据用于分面:
# 替换代码中的df为你自己的数据集变量名
df_long <- df %>%
  # 将除分组列外的所有指标列转为长格式
  pivot_longer(
    cols = -group,
    names_to = "col_name",
    values_to = "y_value"
  ) %>%
  # 新增分面字段,区分数量类和时长类
  mutate(
    facet_type = case_when(
      str_starts(col_name, "Number") ~ "数量类指标",
      str_starts(col_name, "Duration") ~ "时长类指标"
    )
  )
  • A组绘图实现
    直接使用facet_wrap分面,设置scales参数为free_x即可保证两个分面只展示对应类别的x轴标签,不会出现无关的列名:
df_long %>%
  filter(group == "A") %>%
  ggplot(aes(x = col_name, y = y_value)) +
  # 按需替换为你需要的图表类型,这里以柱状图为例
  geom_col(fill = "#2c7fb8") +
  facet_wrap(~facet_type, scales = "free_x") +
  # 可选:调整x轴标签倾斜避免文字重叠
  theme(axis.text.x = element_text(angle = 30, hjust = 1)) +
  labs(x = "指标名称", y = "数值")
  • B组绘图复用
    只需要将上述代码中filter条件的取值改为group == "B"即可,其余配置完全通用,不用额外调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:24:01