ggplot:用颜色填充框图

时间:2016-11-24 11:06:58

标签: r ggplot2

我的数据包含按版本分组的箱形图的比率。我想用设备为每个盒子上色。我还有另一个data2,其中包含我想为每个version显示的数字。但是,我的geom_box似乎与它有冲突。 它显示了一个错误: eval中的错误(expr,envir,enclos):对象'设备'找不到

  p <- ggplot(data1, aes(factor(version),rates,fill=device))
  p + geom_boxplot() + geom_text(data = data2, aes(x = version, y = 0, label = count))

DATA1:

                   rates                  version                      device
1                     0.56            Windows/desktop/Chrome              desktop
2                     0.13          iOS/mobile/Safari mobile               mobile
3                     0.15          iOS/tablet/Safari mobile               tablet
4                     0.65           Windows/desktop/Firefox              desktop
5                     0.17               OS X/desktop/Safari              desktop
6                     0.83            Windows/desktop/Chrome              desktop
7                     0.39           Windows/desktop/Firefox              desktop
8                     0.63            Windows/desktop/Chrome              desktop
9                     0.61 Windows/desktop/Internet Explorer              desktop
10                    0.00            Windows/desktop/Chrome              desktop

DATA2:

                                 version count
21188           iOS/mobile/Safari mobile 37545
105488           Windows/desktop/Firefox 28030
82478             Windows/desktop/Chrome 23936

2 个答案:

答案 0 :(得分:0)

这应该有效:

ggplot(data1, aes(factor(version),rates)) +
  geom_boxplot(aes(fill=device) + 
  geom_text(data = data2, aes(x = version, y = 0, label = count))

它试图在fill中找到data2变量,但它不存在。

答案 1 :(得分:0)

试试这个:

data <- merge(data1, data2, by='version', all=TRUE)
p <- ggplot(data, aes(version,rates,fill=device))
p + geom_boxplot() + geom_text(aes(x = version, y = 0, label = count))

带输出:

enter image description here