我的情节颜色有困难并且创造了一个传奇

时间:2013-09-06 13:28:00

标签: r colors plot legend

这可能是一个基本问题。我已经制作了一个图表,显示了不同狐猴的家庭范围。大!很难完成。但它们都是柠檬绿。如何为我的5个ID中的每个ID选择不同的颜色?看起来应该很简单但我在网上看不到任何东西。有人能提出建议吗?

我已将代码粘贴在

下面
dd <- read.csv(file.choose(), header = T)
xy <- dd[,c("X","Y")]
id <- dd[,"ID"]
hr<- mcp(xy,id,percent=95)
plot(hr,
main="95% Minimum Convex Polygon",
xlab="X Coordinate",
ylab="Y Coordinate")

一旦我的5个ID(frodo,bilbo,merry,pippin,sam)有5种不同的颜色,创建一个显示颜色和相关ID的图例也会很棒。我正在玩下面的代码

legend('topright', names(hr)[-1] , 
lty=1, col=c('red', 'blue', 'green',' brown'), bty='o', cex=1.5)

但这似乎只显示了x,y坐标的图例,而不是我在图中显示的ID。谁能告诉我我做错了什么?

编辑:我明白了!功能&#34; col =&#34;不适用于多边形。它&#34; colpol =&#34;感谢所有帮助

2 个答案:

答案 0 :(得分:1)

hr对象有一个“area”和“data.frame”类。 plot有一种区域方法。它有一个colpol参数。加载adehabitat时请参阅?plot.area

 plot(hr, colpol=c('red', 'blue', 'green',' brown') )

最初,您不清楚是否要为所产生的4个(不是5个)区域着色。我以为你想要按群体着色的点,这就是它产生的。 如果您知道ID已经是一个因素,则不需要因子调用。应用于一个因子的as.numeric将其转换为从1到级别数的整数,并且它被用作5种颜色的矢量的索引。如果要查看所有657种颜色的名称,只需键入colors()即可。有关管理调色板的其他链接,请参阅?colors。 正如所指出的,我们没有数据或mcp函数来查看hr对象被绘制的内容。如果该对象的绘图方法没有为点指定单独的颜色,那么请改为:

 points(xy[,1], xy[,2],
 col = c("red", "green", "blue", "orange", "sandybrown")[as.numeric(factor(dd[,"ID"]))]
)

答案 1 :(得分:0)

这就是你要找的东西

plot(hr$X,hr$Y,main="95% Minimum Convex Polygon",xlab="X Coordinate",
 ylab="Y Coordinate",
 col = rainbow(length(hr$ID))[rank(hr$ID)],
 pch=c(1:25)[as.numeric(factor(hr$ID))])

 legend('topleft', unique(unlist(as.character(factor(hr$ID)))) ,lty=1, 
   col=rainbow(length(hr$ID))[ unique(unlist(rank(hr$ID)))],
   pch=c(1:25)[unique(unlist(as.numeric(factor(hr$ID))))], 
   bty='o', cex=1.5)