R:多点时间序列数据的散点图,ggplot?,重塑?
我有以下格式的数据。 列V1是感兴趣的基因组位置,列V4和V5是在两个不同时间点的次要等位基因频率。 我想用时间点1到时间点2(绘制在y轴上)的每个特定位置的连接等位基因频率的线作一个简单的xy散点图。 (请注意,我实际上有数百到数千个数据点)。
V1 V2 V3 V4 V5
1 153 1/113 1/115 0.008849558 0.008695652
2 390 0/176 150/152 0.000000000 0.986842105
3 445 1/149 1/152 0.006711409 0.006578947
4 507 0/154 144/146 0.000000000 0.986301370
5 619 1/103 99/101 0.009708738 0.980198020
6 649 0/138 120/123 0.000000000 0.975609756
我觉得我应该可以用ggplot来完成这项工作,但我不知道该怎么做,因为我不知道如何为每个基因组位置指定两个y值,也没有指定一个列作为一个类别。 我怀疑数据需要重新设计。 任何帮助或建议,非常感谢!
更新:
感谢所有给我建议的人。 我不认为我很清楚要将时间点作为我的x轴而不是基因组的立场 - 我的歉意。 希望这张照片能够说明这一点!
我已经成功生成了我希望用以下代码创作的情节:
ggplot(dat)+ geom_segment(aes(x =“timepoint 1”,y = V4,xend =“timepoint2”,yend = V5))
这就是情节看起来像更多的数据点...
我还没有改变轴标题,并利用边距进行游戏,但这是一般的想法!
如果您的示例数据在DF
,那么
ggplot(DF) +
geom_segment(aes(x=V4, y="timepoint 1", xend=V5, yend="timepoint 2"))
这个问题并不完全清楚,但我认为这就是你所追求的:
ggplot(d, aes(x=V1, y=V4, ymin=V4, ymax=V5))
+ geom_linerange()
+ xlab('Genomic location')
+ ylab('Minor allele frequency')
文档:http://docs.ggplot2.org/current/geom_linerange.html
with(dat, plot(x=V1, y=V5, ylim=c(0,1) ,type='n',
xaxt="n", ylab="Allele Frequency", xlab="Genomic Location"))
with(dat, axis(1, V1,V1, cex.axis=0.7) )
with( dat, arrows(x0=V1,x1=V1+10, y0=V4, y1=V5) )
您可以清理标签并调整颜色和箭头功能:
?arrows
链接地址: http://www.djcxy.com/p/86147.html
上一篇: R: Scatter plot of time series data for multiple points, ggplot?, reshape?
下一篇: bar axis limits