gpt4 book ai didi

r - 将带有 facet_grid 的 ggplot2 对象的标题移到中间

转载 作者:行者123 更新时间:2023-12-05 00:42:27 28 4
gpt4 key购买 nike

我有以下数据框:

              ML Algorithm Option  Coeff  Lower  Upper
1 Random Forest Algo_1 Opt_1 0.021 -0.124 0.166
2 Lasso Algo_1 Opt_1 0.130 -0.012 0.273
3 XGBoost Algo_1 Opt_1 -0.052 -0.211 0.108
4 Neural Net Algo_1 Opt_1 0.114 -0.009 0.238
5 Random Forest Algo_1 Opt_2 0.116 -0.033 0.264
6 Lasso Algo_1 Opt_2 0.158 0.019 0.297
7 XGBoost Algo_1 Opt_2 -0.260 -0.508 -0.012
8 Neural Net Algo_1 Opt_2 0.035 -0.100 0.170
9 Random Forest Algo_2 Opt_1 0.028 -0.117 0.172
10 Lasso Algo_2 Opt_1 0.134 -0.008 0.277
11 XGBoost Algo_2 Opt_1 -0.054 -0.214 0.106
12 Neural Net Algo_2 Opt_1 0.118 -0.006 0.241
13 Random Forest Algo_2 Opt_2 0.038 -0.097 0.172
14 Lasso Algo_2 Opt_2 0.133 -0.006 0.272
15 XGBoost Algo_2 Opt_2 -0.055 -0.240 0.131
16 Neural Net Algo_2 Opt_2 0.118 -0.007 0.242

ML 列包含四种机器学习算法(随机森林、Lasso、XGBoost、神经网络)。每个 ML 可以用两个算法(Algo_1、Algo_2)拟合,每个算法可以通过两个选项(Opt_1、Opt_2)拟合,为每个 ML 产生四个不同的系数。

我按以下方式绘制数据:

p <- ggplot(results2, aes(x = Option, y = Coeff, color = ML))+
geom_point(size = 5)+
facet_grid(.~ML+Algorithm,scales = "free_x")+
geom_errorbar(aes(ymin = Lower, ymax = Upper, color = ML), size =1)+
geom_hline(yintercept = 0, color = "grey", size = 1.5) +
scale_x_discrete(guide = guide_axis(n.dodge = 2))+
theme(panel.border = element_blank(),panel.spacing.x = unit(0,"line"))+ # Remove space between facets
xlab("")+
ylab("")
p

这是结果: enter image description here

问题:1.) 如何将 ML 名称(即 Lasso、Random Forest、XGBoost、Neural Net)向右移动,使其位于相应算法(即 Algo_1 和 Algo_2)之上和之间,以便每个 ML 名称仅出现一次并且不是每个算法的两倍?

2.) 如何使 ML 名称加粗?

非常感谢您的帮助。

最佳答案

如果您希望标签集中,您可以这样做:

library(ggh4x)

ggplot(results2, aes(x = Option, y = Coeff, color = ML))+
geom_point(size = 5)+
facet_nested(.~ ML + Algorithm, scales = "free_x",
strip = strip_nested(text_x = list(
element_text(face = 'bold', size = 12),
element_text()), by_layer_x = TRUE)) +
geom_errorbar(aes(ymin = Lower, ymax = Upper, color = ML), size =1)+
geom_hline(yintercept = 0, color = "grey", size = 1.5) +
scale_x_discrete(guide = guide_axis(n.dodge = 2))+
theme(panel.border = element_blank(),panel.spacing.x = unit(0,"line"))+
xlab("") +
ylab("")

enter image description here

关于r - 将带有 facet_grid 的 ggplot2 对象的标题移到中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73989035/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com