这可能是一个基本问题。我已经制作了一个图表,显示了不同狐猴的家庭范围。大!很难完成。但它们都是柠檬绿。如何为我的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;感谢所有帮助
答案 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)