我正在从单个数据帧的子集中制作一组 R 中的饼图(带有循环)。我得到了漂亮的饼图,但是在每个饼图中总是以相同的顺序分配颜色,而我希望在所有饼图中将颜色分配给相同的值。
我的代码是:
for (i in 1:length(voisins)) {
y <- subset(zz, Destination==voisins[i])
pie(y$pc,labels=y$Names, col=terrain.colors(nrow(y)) , main=c(y$country[1]))
我想为每个y$Names
.
我不允许在这里放图片,所以我把它放在那里:http ://cl.ly/image/080t2Q1v1q3V
如果同一区域具有相同的颜色会更容易阅读!有没有办法做到这一点?
解决方案 :
谢谢你,阿伦,你的回答,但不幸的是,这并没有产生我想要的结果,可能我解释得不够清楚。我相信 ggplot 是一个更好的图形包,我很快就会学会如何使用它,但目前我没有时间,你的回答让我走上了正确的轨道。我找到了一个解决方案:实际上,如果您在示例中制作更大的“t”(具有更多行),然后采用它的子集导致更小的 t1、t2、t3、...,但 t$id 并不总是相同,所以假设在 t1 中我们将有 id = (2,4,9,3),在 t2 中 id = (4,6,3),依此类推。您将看到颜色总是以相同的顺序分配,即在 t1 中 2=red、4=green、9=blue、3=violet,而在 t2 中,4=red、6=green 和 3=blue。所以颜色从一个馅饼到另一个馅饼不同,我希望总是 2=red,4=green,3=blue,9=紫色。我找到的解决方案是根据 t$id 将一个颜色列合并到 t,然后将其保存在子集 t1, t2, t3, ... 并设置 col=t1$color , col=t2$color 等在 pie 命令中。最后很容易,但我希望有一个自动的解决方案,稍后我会看到 Paul 的解决方案。迪迪埃