传奇出现,但它没有显示颜色

时间:2016-11-03 21:33:00

标签: r vegan

我正在使用R进行绘图。当我的图形绘制时,图例出现在我想要的位置,但颜色缺失。 mtcars 2mtcars(其中一个预加载的数据集)的修改版本,它将模型和原始国家/地区添加到数据集中。 mtcars.pca是我命名为冗余分析(素食主义下的rda函数),mtcars.clust标题为mtcars连续因子的层次聚类(素食主义者的hclust函数)以下是我使用的代码mtcars2

Example output

pca.fig = ordiplot(mtcars.pca, type = "none", las=1, xlim=c(-15,15), ylim = c(-20,10))        

points(pca.fig, "sites", pch = 19, col = "green", select = mtcars2$origin =="domestic")  
points(pca.fig, "sites", pch = 19, col = "blue", select = mtcars2$origin =="foreign")  

ordiellipse(mtcars.pca, mtcars2$origin, conf = 0.95, label = FALSE) 
ordicluster(mtcars.pca, mtcars.clust, col = "gray")   

legend("bottomright", title="Car Origin", c("domestic", "foreign"), col = "origin")

2 个答案:

答案 0 :(得分:1)

您需要在legendpch中指定颜色矢量:

library("vegan")
data(dune, dune.env)
ord <- rda(dune)
plot(ord, type = "n")
cols <- c("red","blue","green")
points(ord, col = cols[dune.env$Use], pch = 19)
legend("bottomright", legend = levels(dune.env$Use), bty = "n",
       col = cols, pch = 19)

如果您不添加pch,但只需使用col = cols legend(),则不会显示任何积分。由于您在pch = 19来电中使用了points(),因此请在legend()来电中使用相同内容。

另外,请注意如何在一次通过中绘制不同颜色的点。我有一些示例和解释,通过我在上面的代码中使用的索引技巧,在几年前的博客文章中实现了这一点:http://www.fromthebottomoftheheap.net/2012/04/11/customising-vegans-ordination-plots/

答案 1 :(得分:0)

我来到这个问题,在xts对象中遇到了下一个问题: 我想用图例在xts对象中绘制所有时间序列。此外,大约有20个。

  • 我使用过(错误):
plot(returns_xts)
addLegend(...)
  • 正确版本:
plot(returns_xts, legend.loc = "bottomright", col=1:20, lty = 1)
  • legend.loc 参数
  • col = 1:20 为您生成颜色

结果: enter image description here