我有一个包含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"))
答案 0 :(得分:5)
您应该使用cut
在数据框中创建其他变量。
DATA$COLOUR <- cut(DATA$VALUE, c(0, 2, 5, 10, 20, 30, 40, Inf),
c("blue", "green", "red", "yellow", "orange", "grey", "black"))