我有两张图,我试图将一个叠加在另一个上面:
数据框"ge"的示例如下所示.实际上有10个Genes,每个200个样本,所以有2000行和3列:
Exp Gene Sample
903.0 1 1
1060.0 1 2
786.0 1 3
736.0 1 4
649.0 2 1
657.0 2 2
733.5 2 3
774.0 2 4
Run Code Online (Sandbox Code Playgroud)
数据框"avg"的示例如下所示.这是所有样品中每个基因的数据点的平均值.实际上这个图有10个基因,所以矩阵是4col X 10行:
mean Gene sd se
684.2034 1 102.7142 7.191435
723.2892 2 100.6102 7.044122
Run Code Online (Sandbox Code Playgroud)
第一张图描绘了每个基因的平均表达线以及每个数据点的标准偏差.
avggraph <- ggplot(avg, aes(x=Gene, y=mean)) + geom_point() +geom_line() + geom_errorbar(aes(ymin=mean-sd, ymax=mean+sd), width=.1)
Run Code Online (Sandbox Code Playgroud)
第二张图描绘了跨所有基因的每个样品的线形式的基因表达.
linegraphs <- ggplot(ge, aes(x=Gene, y=Expression, group=Samples, colour="#000099")) + geom_line() + scale_x_discrete(limits=flevels.tge)
Run Code Online (Sandbox Code Playgroud)
我想在线图上叠加avggraph.有没有办法做到这一点?我试过avggraph + linegraphs但是我收到了一个错误.我认为这是因为图表是由两个不同的数据帧生成的.
我还应该指出两个图的轴是相同的.两个图都具有X轴上的基因和Y轴上的基因表达.
任何帮助将不胜感激!
Sve*_*ein 23
一种方法是将geom_line第二个绘图的命令添加到第一个绘图.您需要告诉ggplot该geom基于不同的数据集:
ggplot(avg, aes(x=Gene, y=mean)) +
geom_point() +
geom_line() +
geom_errorbar(aes(ymin=mean-sd, ymax=mean+sd), width=.1) +
geom_line(data = ge, aes(x=Gene, y=Exp, group=Sample, colour="#000099"),
show_guide = FALSE)
Run Code Online (Sandbox Code Playgroud)
最后一个geom_line命令用于根据原始数据创建行.

| 归档时间: |
|
| 查看次数: |
74629 次 |
| 最近记录: |