我目前正在尝试绘制一些数据,但无法获得良好的结果。我有一组51个人,每个人都有特定的值(Pn),分为14组。我最终得到的最接近的东西是this kind of plot。我可以通过以下简单的代码获得它,首先是为个人设置值:
Individuals <- factor(Individuals,levels=Individuals[order(Pn)])
dotchart(Pn,label=Individuals,color=Groups)
问题是我在该图上只有9种颜色(因此我以某种方式丢失了信息),我无法找到一种方法来手动应用每组一种颜色。
我还尝试使用ggplot2包,方法是阅读它可能会带来漂亮的外观。在那种情况下,我无法正确地对个人进行排序(以前的排序似乎在这里没有任何作用),而且我最终只能为组表示提供不同类型的蓝色,这不是一种有效的表示方法我的数据集提供的信息。我得到的图可以访问here,并且使用了以下代码:
ggplot(data=gps)+geom_point(mapping=aes(x=Individuals, y=Pn, color=Groups))
对于这个问题似乎很多余,我深表歉意,但是我自己也想不出一个解决方案,甚至在听了别人的回答之后……
提前谢谢!
编辑:当我使用ggplot2
包时,按照建议的波纹管sorted out the issue with the colors使用RColorBrewer。
答案 0 :(得分:1)
我无法确定是否不查看您的数据,但看起来Groups
可能是数字值。试试这个:
gps$Groups <- as.factor(gps$Groups)
library(RColorBrewer)
ggplot(data=gps)+
geom_point(mapping=aes(x=Individuals, y=Pn, color=Groups))+
scale_colour_brewer(palette = "Set1")
答案 1 :(得分:1)
我相信您正在scale_color_manual()
中寻找ggplot2
函数。您没有提供可复制的示例,但可以尝试以下方法:
ggplot(data=gps, mapping=aes(x=Individuals, y=Pn, color=Groups))+
geom_point() +
scale_color_manual(values = c('GROUP1' = 'color_value_1',
'GROUP2' = 'color_value_2',
'GROUP3' = 'color_value_3'))
将GROUPX
替换为“组”列中的值,并将color_value_x
替换为您要使用的任何颜色。
R数据科学的第3章是进一步了解ggplot2
的良好资源,您可以在此处阅读:http://r4ds.had.co.nz/data-visualisation.html