如何在ggplot中以每组的误差线绘制点?

Rollo99

我有以下数据框:


mlt = structure(list(V1 = c("Female > 55", "Male > 55", "Finance Industry", 
"South"), climatechange = c(0.116, 0.093, -0.186, 0.311), `SE climatechange` = c(0.299720594648884, 
0.209685397712576, 0.198822469025311, 0.220794746780239), housing = c(-0.223, 
0.288, -0.063, -0.401), `SE housing` = c(0.240842826106496, 0.262613125585529, 
0.233796203318591, 0.112279926339202), macro = c(-0.219, -0.243, 
0.252, 0.058), `SE macro` = c(0.167027449787956, 0.109527362813708, 
0.225740740488032, 0.139837005156927), `pension and savings` = c(0.287, 
0.815, 0.348, -0.611), `SE pension and savings` = c(0.278129111903788, 
0.26508680711124, 0.250889015745089, 0.0571662145564419)), row.names = c(NA, 
-4L), class = "data.frame")

View(df)

数据框有4个主题,每个主题都有相应的标准误差。到目前为止,我只绘制了第一个主题:

mlt1 = mlt[,c(1:3)]

ggplot(mlt1, aes(V1, climatechange,
                 ymin = climatechange - 1.96*`SE climatechange`, ymax= climatechange + 1.96*`SE climatechange`)) +
  scale_x_discrete('') +
  scale_y_continuous('Marginal Effect \n',limits=c(-1,1)) +
  theme_classic() +
  theme(panel.border = element_rect(fill=NA)) + geom_errorbar(aes(x = V1, y = climatechange),
                                                              size=0.8,width=.2, col = "#0072B2") + 
  geom_point(aes(fill=factor(climatechange)), size=5, shape = 21) +
  scale_fill_manual(values=c(rep("#0072B2",13))) + 
  geom_hline(yintercept=0, col = "grey")  + theme(legend.position="none") + theme(axis.text = element_text(color = "black", size = 12),
                                                       axis.title = element_text(size = 12)) + labs(title="Climate Change") +
  theme(plot.title = element_text(color = "black", size = 12, face = "bold", hjust = 0.5)) +
  theme(axis.text.x = element_text(angle = 45, hjust = 0.5, vjust = 0.5))

不过,我想做的就是得到一个看起来像这样的图:

在此处输入图片说明

在这里,而不是A,B...。我有四个主题,每个主题都显示相应的变量。环顾四周,我发现有人使用过:facet_grid(.~Test, space = "free_x", shrink = T, scales = "free_x")然而; 我不确定如何应用于我的数据集。

谁能帮我?

谢谢!

安德鲁·巴克斯特

要做到所有四个-首先你需要转动几次,使数据帧整洁(即创建一个列measure(主题),meanSE),然后创建数据帧由测量变量刻面:

mlt %>% 
  pivot_longer(2:9, 
               names_to = c("measure"), 
               values_to = "est") %>%
  mutate(stat = ifelse(str_detect(measure, "^SE"), "SE", "mean"),
         measure = str_extract(measure, "\\w*$")) %>% 
  pivot_wider(names_from = "stat",
              values_from = "est", 
              id_col = c(V1, measure)) %>% 
  ggplot(aes(x = V1, mean,
             ymin = mean - 1.96*SE,
             ymax = mean + 1.96*SE)) +
  scale_x_discrete('') +
  scale_y_continuous('Marginal Effect \n', 
                     # limits=c(-1,1)
  ) +
  coord_cartesian(ylim = c(-1, 1)) +
  theme_classic() +
  theme(panel.border = element_rect(fill=NA)) + 
  geom_errorbar(size=0.8,width=.2, col = "#0072B2") + 
  geom_point(size=5, shape = 21) +
  scale_fill_manual(values=c(rep("#0072B2",13))) + 
  geom_hline(yintercept=0, col = "grey")  + 
  theme(legend.position="none") + 
  theme(axis.text = element_text(color = "black", size = 12),
        axis.title = element_text(size = 12)) + labs(title="Climate Change") +
  theme(plot.title = element_text(color = "black", size = 12, face = "bold", hjust = 0.5)) +
  theme(axis.text.x = element_text(angle = 45, hjust = 0.5, vjust = 0.5)) +
  facet_wrap(~measure, nrow = 1)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python的极坐标中绘制误差线?

在ggplot2中绘制两个误差线和一个点图

如何在ggplot2中的同一图上绘制线和点?

在ggplot2中将误差线与每组中不同数量的线对齐

如何在gnuplot中用线绘制误差线?

如何使用 R 中的 ggplot2 绘制均值的误差线?

使用`jitterdodge`时在ggplot中对齐点和误差线

如何在openlayers中从数组的连续点绘制线串

在 Matlab 中绘制误差线

如何在此图上绘制误差线并更改覆盖图?

如何在 seaborn barplot 上绘制误差线?

如何在ggplot2(R)的误差线中定义宽度?

如何在ggplot中的堆叠条形图中将误差线组织到相关条?

如何在ggplot2中手动添加误差线和n =样本大小?

如何从数据框中绘制标准误差线?

如何在ggplot瀑布图上添加误差线?

如何在ggplot中使用变量测度(误差线)?

如何在ggplot中将观察和模拟的时间序列绘制为线和点?

如何使用ggplot2为分组条形图绘制误差线?

如何在matplotlib中设置误差线帽的线宽?

如何在matplotlib中设置误差线帽的线宽?

如何在Google Data Studio图表中添加误差线?

如何在 matplotlib 中自定义误差线

如何使用误差线将两个ggplot点堆叠在一起

如何在图例中的线和点周围绘制填充的方框?

如何在OpenCV3中将点序列绘制为线?

如何在matplotlib / basemap中的多个x,y点之间绘制线

如何在Python中绘制仅连接距离等于1的点的线

ggplot2中的颜色误差线