ggplot中的boxplot给出了意想不到的输出

时间:2017-12-07 09:52:00

标签: r ggplot2 boxplot

我想使用ggplot绘制一个分组的boxplot。如下图所示:

enter image description here

以下是我的数据中的示例(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")

这会产生以下情节:

enter image description here

以及以下警告:

Warning message:
"position_dodge requires non-overlapping x intervals"

由于变量colsample_bytree需要3个离散值而变量alpha需要6个,我希望看到3组箱图 - 每个组由6个箱图组成,对应于不同的alpa值,每个组位于不同的colsample_bytree值即0.3,0.5和1.

我希望箱形图不会像我引用的例子那样重叠。

1 个答案:

答案 0 :(得分:0)

在使用data$colsample_bytree <- as.factor(data$colsample_bytree)命令绘制数据之前,您只需要包含ggplot