在R中使用plot()时如何摆脱网格?

时间:2016-02-03 19:55:04

标签: r plot vegan

所以我通过素食包使用R来执行DCA(去趋势对应分析),每当我绘制结果时,我会在情节中间得到一个网格。

我想摆脱它。

这是我的代码:

dca <- decorana(dados)

plot(dca, type = "n", ann = FALSE, origin = TRUE)
        text(dca, display = "sites")
        points(dca, display = "species", pch = 21, col="red", bg = "red", cex=0.5)
        mtext(side = 3, text = "Análise de Correspondência Retificada (DCA)", font=2, 
              line = 2.5, cex=1.8, font.lab=6, cex.lab=2, cex.axis=1.5)
        mtext(side = 1, text = "Eixo I", font=2, line = 2.5, cex=1.5, 
              font.lab=6, cex.lab=2, cex.axis=2)
        mtext(side = 2, text = "Eixo II", font=2, line = 2.5, cex=1.5, 
              font.lab=6, cex.lab=2, cex.axis=2)

结果如下: DCA plot

你看到x = 0和y = 0的网格线?这就是问题所在。

3 个答案:

答案 0 :(得分:1)

正如现有的各种文档和教程中经常提到的那样,如果你不喜欢plot()生成的默认图,你可以自由地提供你自己提供的低级绘图函数。 R或我们在素食主义者中提供的中间函数。

这里的主要复杂因素是,由于某种原因,我们无法在type = "none"方法中使用plot绘制原点线。但即便如此,也可以通过自己绘制得分来解决。

library("vegan")
data(dune)
dca <- decorana(dune)
spp <- scores(dca, 1:2, display = "species")
sit <- scores(dca, 1:2, display = "sites")
xlim <- range(spp[,1], sit[,1])
ylim <- range(spp[,2], sit[,2])
plot(spp, type = "n", xlim = xlim, ylim = ylim, asp = 1, ann = FALSE)
text(sit[,1], sit[,2], labels = rownames(sit))
points(spp, pch = 21, col = "red", bg = "red", cex = 0.5)
title(xlab = "DCA 1", ylab = "DCA 2")

以下是默认plot.decorana与上述内容的并列比较

enter image description here

答案 1 :(得分:0)

看起来这个虚线是由情节函数通过查看source code的第66和67行创建的:

GROUP BY

摆脱它的唯一方法是复制功能代码并删除这两行。

答案 2 :(得分:0)

绘制两条白线以遮盖它们,然后在顶部绘制点。

abline(h=0, col="white")
abline(v=0, col="white")

然后绘制一个框以移除边框

在边框中创建的间隙
box()