【发布时间】:2015-08-26 12:10:33
【问题描述】:
我是 R 的新手,我正在尝试生成一个简单的散点图,其中包含多个样条拟合。
我有一张如下图所示的表格,
chr window number percent pie
chr1 500 15 0.502 na
chr1 1000 21 0.641 0.019704955
chr1 1500 21 0.621 0.016777844
chr1 2000 22 0.534 na
chr1 2500 35 0.698 0.028712731
chr2 4500 2 0.371 na
chr2 5000 3 0.342 na
chr4 5500 1 0.068 na
chr4 6000 0 0.000 na
chr4 6500 0 0.000 na
chr5 7000 2 0.079 na
chr5 7500 12 0.440 na
我想做的基本上是从此数据框中绘制一个简单的 x,y 散点图,并在同一图上为第 1 列中的每个级别添加样条拟合。现在我可以生成这样的散点图了,
ggplot(Y, aes(x=percent, y=pie))+ geom_point(size = 1) +
theme(axis.text.y=element_text(size=8))
但到目前为止,我看到的所有示例都是关于每个图有一条样条线。我的问题是如何根据 column1 拆分数据框并为每个子集生成样条曲线,最后将所有样条曲线与散点图放在同一个图中?
我更喜欢将其保留在 ggplot 中,但如果您有 ggplot 之外的解决方案,请也告诉我。
任何帮助将不胜感激。如果您需要我方面的更多信息,请告诉我。
干杯,
【问题讨论】:
-
geom_smooth会做你想做的事吗? (如果没有,请考虑详细说明您想要的输出是什么样的,尤其是与您目前看到的那些“示例”相比*)。当然,您可以添加多个geom_*层。 -
您可以尝试将
colour = chr添加到aes(),然后使用stat_smooth()进行样条拟合,如其文档(docs.ggplot2.org/0.9.3/stat_smooth.html)中所示例的那样 -
@maj- 我会在这里详细说明。因此,如果您查看上表,column1 中有五个级别(chr1、chr2、...chr5)。我的最终输出将是从该表中的所有值生成的散点图,其中包含 5 个样条线(对应于第 1 列中的每个层)。这清楚吗?
-
@Hugo - 我试过了,但我只得到一个样条线。不确定我是否做得对。 c