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

如何将含职业群体占比的字符串转换为DataFrame用于ggplot2绘图?

嘿,我来帮你搞定把这段职业占比数据转成DataFrame再用ggplot2绘图的事儿!下面是一步步的解决方案:

1. 把字符串数据转换成结构化DataFrame

首先咱们得把你给出的非结构化文本转换成R能处理的DataFrame。注意你的数据里用逗号作为小数点分隔符,后续要处理成数值类型才行。

这里我先把你提供的内容整理成结构化数据(最后一个职业你没写完,我填了个示例值,你记得替换成真实数据哈):

# 先加载需要的工具包
library(tidyverse)

# 构建原始数据框
job_stress_data <- tibble(
  职业群体 = c(
    "管理人员", 
    "技术人员及同等非技术职业", 
    "学术职业", 
    "设备与机器操作员", 
    "办公室职员及商务雇员", 
    "手工业及相关职业", 
    "服务职业及销售人员"
  ),
  受困扰占比 = c("26,2", "19,6", "18,3", "15,4", "13,4", "12,9", "12,0")
)

# 把逗号替换成点,转换为数值类型
job_stress_data <- job_stress_data %>%
  mutate(受困扰占比 = as.numeric(str_replace(受困扰占比, ",", ".")))
2. 用ggplot2绘制可视化图表

接下来咱们用ggplot2做一个清晰的条形图,直观展示各职业的占比差异:

# 绘制条形图
ggplot(job_stress_data, aes(x = reorder(职业群体, 受困扰占比), y = 受困扰占比)) +
  geom_bar(stat = "identity", fill = "#4A6FA5", alpha = 0.85) +
  coord_flip() + # 翻转坐标轴,避免长职业名称挤在一起
  labs(
    title = "2013年各职业群体受时间压力与工作超负荷困扰的占比",
    x = "职业群体",
    y = "占比(%)",
    caption = "数据来源:你的原始统计数据"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
    axis.title = element_text(size = 12),
    axis.text = element_text(size = 10)
  )

小说明:

  • 用reorder函数让条形按占比从小到大排序,更方便对比;
  • coord_flip翻转了坐标轴,解决了长职业名称显示重叠的问题;
  • 颜色和主题都可以根据你的喜好调整,比如把fill改成你喜欢的颜色代码就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:00:03