更改R图中的颜色

时间:2018-08-01 13:57:30

标签: r ggplot2 plot

我目前正在尝试绘制一些数据,但无法获得良好的结果。我有一组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。

2 个答案:

答案 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