我有以下数据框:
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
(主题),mean
和SE
),然后创建数据帧由测量变量刻面:
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] 删除。
我来说两句