手动着色点geom_point

时间:2016-04-30 15:11:30

标签: r ggplot2

我正在使用ggplot绘制群集。我想为群集0自定义颜色,但不知何故它没有用。

Hasil<-Result$cluster
latitude<-datafile$latitude
longitude<-datafile$longitude
stdb<-data.frame(latitude,longitude,Hasil)

plotpeta<- function(stdb){
#read shape file
map<- readOGR(dsn="D:/peta", layer="indo_districts")
map@data$id <- rownames(map@data)

#convert to dataframe
maps<-fortify(map)
mergemap <- join(maps, map@data, by="id")
ggplot(mergemap) + aes(long,lat, group=group) +
  geom_polygon(data=map, aes(long, lat, group=group), color="grey") + 
  geom_path(data=map, color="white")+
  geom_polygon(data=mergemap, aes(long,lat))+
  theme(legend.position = "bottom") +
  geom_point(data=stdb, aes(longitude,latitude,group=1), color="white", size=2) +
  geom_point(data=stdb, aes(longitude,latitude, group=1, color=factor(Hasil)), size=2) +
  ylab("Longitude") + xlab("Latitude") +
  scale_color_hue(name="Hasil", l=40, c=40) +
  guides(col=guide_legend(ncol=10, byrow = TRUE, override.aes =list(size=3))) +
  guides(fill=guide_legend(ncol=10, byrow=TRUE), size=1)+
  coord_equal()

}

这样集群绘图就像这样

the cluster 0 in the picture has color that is similar to cluster 1,2

我想区分群集0,因为它的噪音。 有关如何使其成为白色的任何建议吗? 谢谢:))

1 个答案:

答案 0 :(得分:0)

如果通过创建连锁列表来设置手动调色板:

您可能希望使用scale_color_manual根据需要应用颜色。

您可以使用values=参数将颜色分配给分类变量的适当级别,或者如果您有特定的离散数字或系列名称,则可以使用数字。

  scale_colour_manual( values = c("0" = "white","1" = "blue","7" = "orange")) +

确保这行代码直接遵循描述数据点的geom_point。

如果你想保留一堆等于“蓝色”的值,只需在值列表中的连续列表中定义所有值:

previous color.., c("1", "2", "3", "4") = "blue" , ...other colors

如果你是明确的,考虑到所有可能的结果,并且对语法一丝不苟,这应该有用。