假设我有以下平均值: 在我的研究中,我给否定和肯定的回答分配了0和1的值,所以下面是0到1的平均分.

| Item | Mean |
| a    | 0.66 |
| b    | 0.37 |
| c    | 0.36 |
| d    | 0.12 |
| e    | 0.42 |
| f    | 0.68 |
| g    | 0.19 |
| h    | 0.27 |
| i    | 0.11 |
| j    | 0.37 |

我如何在R中创建条形图,其中您将看到条形图以0.5为中心?对于Means>0.5(例如,a和f项),条形高于0.5,而对于Means<0.5,条形低于0.5.

我试着用谷歌搜索R的代码,但没有成功地找到我想要的.有可能我用错了关键词.我不是R方面的专家,所以我觉得所有与R有关的事情都很有挑战性.考虑到我目前的R经验,我甚至不知道如何实现我想要的.

推荐答案

Update:(见 comments ):

library(ggplot)

df$Deviation = df$Mean - 0.5

ggplot(df, aes(x = Item, y = Deviation)) +
  geom_col(aes(fill = Deviation > 0), position = position_dodge()) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black") +
  scale_fill_manual(values = c("TRUE" = "cadetblue3", "FALSE" = "coral3")) +
  theme_minimal() +
  scale_y_continuous(limits = c(-0.5, 0.5),  
                     breaks = seq(-0.5, 0.5, by = 0.1),
                     labels = function(x) sprintf("%.1f", x + 0.5)) +
  theme(legend.position = "bottom")

enter image description here

Update澄清后(删除第一个答案):只删除coor_flip():

library(ggplot2) 

df$Deviation = df$Mean - 0.5

ggplot(df, aes(x = Item, y = Deviation)) +
  geom_col(aes(fill = Deviation > 0), position = position_dodge()) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black") +
  scale_fill_manual(values = c("TRUE" = "cadetblue3", "FALSE" = "coral3")) +
  theme_minimal()+
  scale_y_continuous(labels = function(x) x + 0.5, 
                     breaks = function(x) seq(floor(min(df$Mean)),  
                                              ceiling(max(df$Mean)), by = 0.1)) +
  theme(legend.position = "bottom")

enter image description here

R相关问答推荐

在ggplot Likert条中添加水平线

如何在ggplot 2线性图的每个方面显示每个组的误差条?

R:更新后无法运行控制台

大规模重新标记haven标签数据

r—绘制相交曲线

如何直接从R中的风险分数计算c指数?

提取具有连续零值的行,如果它们前面有R中的有效值

为什么当用osmdata映射R时会得到相邻状态?

使用外部文件分配变量名及其值

为了网络分析目的,将数据框转换为长格式列联表

TreeNode打印 twig 并为其上色

R如何将列名转换为更好的年和月格式

在不对R中的变量分组的情况下取两行的平均值

变长向量的矢量化和

是否有可能从边界中找到一个点值?

如何根据其他列中的两个条件来计算数据帧中的行之间的差异?

Ggplot2如何找到存储在对象中的残差和拟合值?

如何在shiny 的应用程序 map 视图宣传单中可视化单点

使用列名和r中的前缀 Select 列的CREATE函数

在具有条件的循环中添加行