我有两个散点图,基于不同但相关的数据,使用ggplot2中的qplot()创建。 (学习ggplot
并不是优先事项,因为到目前为止qplot
已满足我的需求。我想要做的是叠加/覆盖两个图表,以便每个图表的x,y数据绘制在相同的绘图空间中。复杂的是,我希望每个情节都保留其格式/美学。
有问题的数据来自对应分析的行和列分数 - 来自corresp()
的{{1}} - 所以两个数据集之间的数据行数(即样本或分类单元)不同。我可以轻松地将两个乐谱集合在一起。通过组合两个数据集,或者更简单地使用MASS
函数。
但是,我一直在使用qplot来获得完全符合我需要的情节;将样本绘制为颜色编码符号,将分类绘制为标签:
biplot()
和
PlotSample <- qplot(DataCorresp$rscore[,1], DataCorresp$rscore[,2],
colour=factor(DataAll$ColourCode)) +
scale_colour_manual(values = c("black","darkgoldenrod2",
"deepskyblue2","deeppink2"))
任何人都可以建议一种方式
PlotTaxa <- qplot(DataCorresp$cscore[,1], DataCorresp$cscore[,2],
label=colnames(DataCorresp), size=10, geom=“text”)
和PlotSample
)可以叠加在一起,PlotTaxa
和DataCorresp$rscore
)可以一起绘制,但格式不同,或者DataCorresp$cscore
)。使用极其简化和虚构的数据集的工作流示例:
biplot()
双标图将产生这个图:/ r / 10wk1a8 / 5
PlotSample如下:/ r / i29cba / 5
PlotTaxa如下:/ r / 245bl9d / 5
编辑所以没有足够的代表来发布图片和不接受的色情链接(尽管https://meta.stackexchange.com/questions/60563/how-to-upload-images-on-stack-overflow)。因此,如果您将tinypic的URL添加到上述代码的开头,那么您将到达那里。
基本上我想创建双色图,但样本的颜色编码与PlotSample相同。
答案 0 :(得分:2)
看看Gavin Simpsons ggvegan-package!
require(vegan)
require(ggvegan)
# some data
data(dune)
# CA
mod <- cca(dune)
# plot
autoplot(mod, geom = 'text')
为了更好地控制(或者如果你想坚持使用corresp()
,你可能还想看看两个相关函数fortify.cca的代码(它包含cca中的数据)对象用于ggplot的可用格式)和autoplot.cca用于创建绘图。
我想从头开始,你必须将两个分数(网站和物种)包装成一个 data.frame(请参阅fortify.cca
如何做到这一点并提取来自corresp()
对象的相关值,并使用它来构建图。