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

如何在R Studio中使用ggplot2制作箱线图叠加散点的柱状图?

求助解答:用ggplot2制作信任均值横向排序条形图

我是R编程新手,想复现数据分析,需要在R Studio里用ggplot2制作类似示例图的可视化。已经通过以下代码提取出均值数据集,也得到了对应的输出结果,但查了ggplot2 cheatsheet还是搞不清这个可视化的类型和实现方法,来求助。

提取均值的代码

mean_values_polVertrauen <- polVertrauen %>%
  summarize(
    BUNDESVERFASSUNGSGERICHT = mean(pt02),
    BILDUNG = mean(pt11),
    POLIZEI = mean(pt14),
    JUSTIZ = mean(pt08),
    GESUNDHEITSWESEN = mean(pt01),
    VERWALTUNG = mean(pt04),
    BUNDESTAG = mean(pt03),
    BUNDESREGIERUNG = mean(pt12),
    EUROPKOMMISSION = mean(pt19),
    EUROPPARLAMENT = mean(pt20),
    PARTEIEN = mean(pt15),
  )

输出的均值数据集

序号机构名称信任均值
1BUNDESVERFASSUNGSGERICHT4.249473
2BILDUNG4.200120
3POLIZEI3.950045
4JUSTIZ3.579898
5GESUNDHEITSWESEN3.941920
6VERWALTUNG3.486909
7BUNDESTAG3.058381
8BUNDESREGIERUNG3.055673
9EUROPKOMMISSION2.512489
10EUROPPARLAMENT2.553416
11PARTEIEN2.190190

解决方案:横向排序条形图实现

你要做的是横向排序条形图,步骤和代码如下:

  1. 数据排序:先把机构按信任均值从高到低排序,这样绘图时条形会从上到下依次递减,和示例图一致
  2. 绘图代码:用ggplot2的geom_col()绘制条形,coord_flip()翻转坐标轴实现横向,再添加数值标签和调整主题
library(ggplot2)
library(dplyr)

# 对数据集按信任均值降序排序,同时把机构名称转为因子(固定顺序)
mean_values_sorted <- mean_values_polVertrauen %>%
  arrange(desc(value)) %>%
  mutate(variable = factor(variable, levels = variable))

# 绘制横向条形图
ggplot(mean_values_sorted, aes(x = value, y = variable)) +
  geom_col(fill = "#3498db") + # 设置条形填充色,可自行修改
  geom_text(aes(label = round(value, 2)), hjust = -0.1, size = 3.5) + # 添加保留两位小数的数值标签
  labs(
    title = "各机构信任均值",
    x = "信任均值",
    y = "机构名称"
  ) +
  xlim(0, max(mean_values_sorted$value) + 0.5) + # 扩展x轴范围,避免标签超出
  theme_minimal() + # 使用简洁的主题
  theme(
    plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
    axis.title.x = element_text(size = 12),
    axis.title.y = element_text(size = 12),
    axis.text = element_text(size = 10)
  )

代码说明

  • geom_col():因为我们已有计算好的均值,用这个函数直接绘制对应高度的条形(如果是原始数据统计用geom_bar(stat="identity")效果一样)
  • arrange(desc(value)):按均值降序排序,mutate(factor(...))是为了让ggplot按排序后的顺序显示机构,不会自动按字母排序
  • geom_text():在条形右侧添加数值标签,hjust=-0.1让标签和条形保持一点距离
  • xlim():扩展x轴右侧范围,防止数值标签超出画布

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:39:58