在 r 中的一个图中绘制多种方法的交叉验证结果
Plot cross validation results of multiple methods in one plot in r
我想在 r 中绘制一个绘图,如下所示:
绘制上面预期情节的数据是这样的:
# Logistic Regression 3-fold cross validation scores for Methods 1,2 and 3
Method1_LR <- c(40,50,60)
Method2_LR <- c(70,50,60)
Method3_LR <- c(30,50,40)
# Random Forest 3-fold cross validation scores for Methods 1,2 and 3
Method1_RF <- c(70,50,60)
Method2_RF <- c(40,50,60)
Method3_RF <- c(30,50,40)
对于每种方法(有 3 种),绘制逻辑回归(在图中用 LR 表示)和随机森林(在图中用 RF 表示)的 3 折交叉验证分数。目的是通过绘制每种方法的交叉验证分数的最小值、最大值和平均值来绘制每种方法的交叉验证分数。在图中我们可以看到逻辑回归设置中的 Method_1,最小值为 40,最大值为 60,所有 3 个值的平均值恰好为 50。方法 1 的平均值显示为正方形,最小值和最大值是从正方形延伸的线的尖端。对于方法 1、2 和 3,图上的标记应该在 x 轴上分开,但不要分开得太远,以至于标记会在图表的随机森林结果侧看起来。绘图的 RF 侧也是如此。
我们可以从 ls
中获取所有 'Method' 对象的值,将 mget
作为 list
,将 list
转换为两列数据集(enframe
),separate
列'name'一分为二,使用geom_boxplot
from ggplot2
library(dplyr)
library(tidyr)
library(ggplot2)
library(tibble)
mget(ls(pattern='^Method\d+_[A-Z]+$')) %>%
enframe %>%
unnest(value) %>%
separate(name, into = c("method", "cat"), sep="_") %>%
ggplot(aes(x = cat, y = value, fill = method)) +
geom_boxplot() +
theme_bw()
-输出
我想在 r 中绘制一个绘图,如下所示:
绘制上面预期情节的数据是这样的:
# Logistic Regression 3-fold cross validation scores for Methods 1,2 and 3
Method1_LR <- c(40,50,60)
Method2_LR <- c(70,50,60)
Method3_LR <- c(30,50,40)
# Random Forest 3-fold cross validation scores for Methods 1,2 and 3
Method1_RF <- c(70,50,60)
Method2_RF <- c(40,50,60)
Method3_RF <- c(30,50,40)
对于每种方法(有 3 种),绘制逻辑回归(在图中用 LR 表示)和随机森林(在图中用 RF 表示)的 3 折交叉验证分数。目的是通过绘制每种方法的交叉验证分数的最小值、最大值和平均值来绘制每种方法的交叉验证分数。在图中我们可以看到逻辑回归设置中的 Method_1,最小值为 40,最大值为 60,所有 3 个值的平均值恰好为 50。方法 1 的平均值显示为正方形,最小值和最大值是从正方形延伸的线的尖端。对于方法 1、2 和 3,图上的标记应该在 x 轴上分开,但不要分开得太远,以至于标记会在图表的随机森林结果侧看起来。绘图的 RF 侧也是如此。
我们可以从 ls
中获取所有 'Method' 对象的值,将 mget
作为 list
,将 list
转换为两列数据集(enframe
),separate
列'name'一分为二,使用geom_boxplot
from ggplot2
library(dplyr)
library(tidyr)
library(ggplot2)
library(tibble)
mget(ls(pattern='^Method\d+_[A-Z]+$')) %>%
enframe %>%
unnest(value) %>%
separate(name, into = c("method", "cat"), sep="_") %>%
ggplot(aes(x = cat, y = value, fill = method)) +
geom_boxplot() +
theme_bw()
-输出