我想使用ggplot绘制一个分组的boxplot。如下图所示:
以下是我的数据中的示例(10行):
alpha colsample_bytree best_F1
35 0.00 0.5 0.5825656
78 0.10 0.3 0.4716612
68 0.00 0.3 0.4714286
27 0.40 1.0 0.4786216
49 0.15 0.5 0.4943968
62 0.00 0.3 0.4938805
70 0.00 0.3 0.4849785
73 0.10 0.3 0.4997061
59 0.30 0.5 0.4856369
88 0.20 0.3 0.4552402
sort(unique(data$alpha))
0 0.1 0.15 0.2 0.3 0.4
sort(unique(data$colsample_bytree))
0.3 0.5 1
我的代码如下:
library(ggplot2)
library(ggthemes)
ggplot(data, aes(x= colsample_bytree, y = best_F1, fill = as.factor(alpha))) +
geom_boxplot(alpha = 0.5, position=position_dodge(1)) + theme_economist() +
ggtitle("F1 for alpha and colsample_bytree")
这会产生以下情节:
以及以下警告:
Warning message:
"position_dodge requires non-overlapping x intervals"
由于变量colsample_bytree需要3个离散值而变量alpha需要6个,我希望看到3组箱图 - 每个组由6个箱图组成,对应于不同的alpa值,每个组位于不同的colsample_bytree值即0.3,0.5和1.
我希望箱形图不会像我引用的例子那样重叠。
答案 0 :(得分:0)
在使用data$colsample_bytree <- as.factor(data$colsample_bytree)
命令绘制数据之前,您只需要包含ggplot
。