R 在不同数据集的箱线图顶部绘制几何点

R 在不同数据集的箱线图顶部绘制几何点,r,ggplot2,R,Ggplot2,我有一个数据集a,从中我制作了一组箱线图。在这些方框图的顶部,我想绘制一个geom_点,它只是原始数据集的一个子集。子集存储在b中 我做错了什么来得到这个错误 ggplot(a, aes(x=reorder(miRNA,as.numeric(value)),y=as.numeric(value))) + geom_boxplot() + geom_point(b, aes(x=reorder(miRNA,as.numeric(value)))) + theme(axis.text.x =

我有一个数据集
a
,从中我制作了一组箱线图。在这些方框图的顶部,我想绘制一个
geom_点
,它只是原始数据集的一个子集。子集存储在
b

我做错了什么来得到这个错误

ggplot(a, aes(x=reorder(miRNA,as.numeric(value)),y=as.numeric(value))) + geom_boxplot() +
  geom_point(b, aes(x=reorder(miRNA,as.numeric(value)))) +
  theme(axis.text.x = element_text( angle = 90)) +
  coord_flip() +
  scale_y_continuous(limits=c(-5, 5)) +
  theme_bw(base_size = 8) +
  labs(x = "miRNA", y = "log2 tumor/benign") 
错误:ggplot2不知道如何处理类uneval的数据


我认为问题在于
aes()
geom_point()
的规范。 你写道:


geom_点(b,aes(x=重新排序(miRNA,如数值)))

但我认为应该是:

几何点(b,aes(x=重新排序(miRNA),y=数值(值)))
您甚至不需要在调用
geom_point()
时重新指定
aes()
,因为它与整个绘图相同

在不细分数据的情况下尝试,也就是说,绘制所有点,然后看看是否有效。我还建议绘制所有数据并着色或以其他方式突出显示子集;否则可能会使观看情节的人感到困惑

注:
我通常指定
geom\u箱线图(outlier.size=NA)
以禁止在叠加点时绘制异常值,或者将对异常值进行双重绘制

只需使用
data=b
而不是
geom\u point()中的
b
> head(a)
             miRNA variable      value
2    hsa-let-7b-5p   ta.008 -0.1512121
3    hsa-let-7c-5p   ta.008 -0.2649810
11  hsa-miR-10a-5p   ta.008 -1.6736331
13  hsa-miR-122-5p   ta.008  0.0417420
15 hsa-miR-125a-5p   ta.008 -0.8262042
19  hsa-miR-128-3p   ta.008 -0.2867184
> head(b)
               miRNA variable     value
2670   hsa-let-7b-5p   tb1302  1.313482
2671   hsa-let-7c-5p   tb1302  1.071200
2679  hsa-miR-10a-5p   tb1302  1.728654
2681  hsa-miR-122-5p   tb1302  1.013428
2683 hsa-miR-125a-5p   tb1302 -0.274418
2687  hsa-miR-128-3p   tb1302 -4.967844