我有一个包含 X、Y 和 VALUE 列的数据框。我正在使用 ggplot2 在指定坐标处绘制值。但我希望根据 VALUE 列的自定义范围填充颜色。例如:
VALUE COLOUR
0 to 2 blue
2 to 5 green
5 to 10 red
10 to 20 yellow
20 to 30 orange
30 to 40 grey
>40 black
如何使用ggplot2为特定值填充特定颜色?
如果需要,我可以对我的数据进行重新采样,并在此之后将每个重新采样的值映射到颜色,例如:
VALUE RESAMPLED VALUE COLOUR
0 to 2 10 blue
2 to 5 20 green
5 to 10 30 red
10 to 20 40 yellow
20 to 30 50 orange
30 to 40 60 grey
>40 70 black
但是这段代码没有将值映射到颜色上:
ggplot2::ggplot() + ggmap::theme_nothing() +
ggplot2::geom_tile(data = xyDataFrame, alpha = 0.6, aes(x = X, y = Y, fill=VALUE)) +
ggplot2::scale_fill_gradientn(colours = c("blue", "green", "red", "yellow", "orange", "grey", "black"))
ggplot
把COLOUR
当作了一个美学因素。您还需要更改填充比例尺。使用scale_fill_manual(value=c("blue", "green", "red", "yellow", "orange", "grey", "black"))
应该可以解决问题。根据cut
排序因素的方式,您可能需要重新排列颜色的顺序。 - Benjamin