2016-11-24 117 views
-1

我有我从中按照版本分组的方块图的速率数据。我想通过设备为每个框着色。我还有另一个data2,其中包含我想要为每个version显示的数字。但是,似乎我的geom_box与它有冲突。 它显示我一个错误: 错误的eval(expr中,ENVIR,enclos):对象 '设备' 未找到ggplot:用颜色填充方块图

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 

回答

0

这应该工作:

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

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

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