非常感谢帮助我使用5种不同颜色为geom_points上色。地图中的每个点代表一个ZipCode。数据如下:
ID zip city state latitude longitude num colorBuckets
-------------------------------------------------------------------------------
1 00210 xxx NH 43 -71.013 10 1
2 45013 yyy OH 43 -88.304 200 5
.
.
我希望colorBucket 5
显示为深红色,colorBucket 4
显示为亮红色,最后colorBucket 1
显示为非常浅灰色。有人可以帮我处理代码吗?
这是我到目前为止所拥有的:
g <- ggplot(data=mapdata,
aes(x=longitude, y=latitude)) +
geom_point(aes(fill=colorBuckets), size = 0.04) +
scale_x_continuous(limits = c(-125,-66), breaks = NULL) +
scale_y_continuous(limits = c(25,50), breaks = NULL) +
labs(x=NULL, y=NULL)
我无法发布图像[因为我还没有10个声誉 - 不确定偶数意味着什么]。
但目前的情节是所有黑色圆点,而图例中显示的是各种蓝色,刻度从1到5。
我尝试将以下代码添加到此代码段的末尾但未成功:
scale_fill_manual(values=c("<20"="red", "21 - 60" = "blue", "61 - 80" = "green", "81-100" = "yellow"))
scale_fill_brewer(palette="<palette name>")
scale_colour_nrewer(palette="<palette name>")
非常感谢任何帮助。
谢谢,
答案 0 :(得分:1)
还有另外一条评论,所以我想我应该发一个答案。这里发生了一些事情:
检查您的列类。如果ggplot
显示连续色标(如您所述),那是因为您的数据是连续的。如果您想要5种不同颜色,请将colorBuckets
转换为因子
geom_point
,您应设置color
,而不是fill
。 (如果你使用形状21:25 then you can set both color and fill
通过上述更改,您可以使用scale_color_manual
,如果您知道自己想要的每种颜色,但根据您的描述,我认为您可以使用
+ scale_color_brewer(palette = "Reds")
答案 1 :(得分:0)
所以这就是我最后要做的,感谢Gregor的反馈。
g <- ggplot(data=mapdata,
aes(x=longitude, y=latitude)) +
geom_point(aes(color=factor(colorBuckets)), size = 0.04) +
scale_x_continuous(limits = c(-125,-66), breaks = NULL) +
scale_y_continuous(limits = c(25,50), breaks = NULL) +
labs(x=NULL, y=NULL) +
theme_bw() +
scale_color_manual(values=c("bisque", "darkseagreen2", "maroon", "red")) +
geom_polygon(data=states, aes(long, lat, group=group), fill=NA, colour="#000000") +
labs(x="", y="", title="Some Title")