因此,我使用R通过Vegan软件包执行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的网格线了吗?这就是问题所在。
发布于 2016-02-04 11:47:46
正如现有的各种文档和教程中经常提到的,如果您不喜欢plot()生成的默认绘图,您可以使用R提供的低级绘图函数或我们在素食中提供的中间函数构建您自己的绘图。
这里的主要复杂之处在于,由于某种原因,我们不能不在plot方法中使用type = "none"绘制原始线。但即使是这样,也可以通过自己绘制分数来解决。
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和上面绘制的内容的并列比较

发布于 2016-02-04 04:21:33
看起来虚线是由plot函数通过查看source code的第66行和第67行创建的
abline(h = 0, lty = 3)
abline(v = 0, lty = 3)摆脱它的唯一方法是复制函数代码并删除这两行。
发布于 2017-05-31 06:28:55
画两条白线覆盖它们,然后在上面画你的点。
abline(h=0, col="white")
abline(v=0, col="white")然后绘制一个框以删除由斜线在边框中创建的间隙
box()https://stackoverflow.com/questions/35186441
复制相似问题