【问题标题】:plot geom_point on top of boxplot from different data set在不同数据集的箱线图上绘制 geom_point
【发布时间】:2018-06-15 07:06:54
【问题描述】:

我有一个数据集a,我从中制作了一组箱线图。在这些箱线图之上,我想绘制一个geom_point,它只是原始数据集的一个子集。子集存储在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 类的数据

> 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

【问题讨论】:

  • geom_point()中使用data=b而不是b

标签: r ggplot2


【解决方案1】:

我认为问题出在您对geom_point()aes() 规范中。 你写道:

geom_point(b, aes(x=reorder(miRNA,as.numeric(value))))

但我应该是: geom_point(b, aes(x=reorder(miRNA), y = as.numeric(value))) 您甚至不需要在对geom_point() 的调用中重新指定aes(),因为它与整体情节相同。

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

注意: 我通常指定geom_boxplot(outlier.size = NA) 以在我覆盖点时禁止绘制异常值,否则异常值将被重复绘制

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 2021-12-12
    相关资源
    最近更新 更多