根据值绘制R中的颜色

时间:2015-07-27 11:23:56

标签: r

我有一个包含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"))

1 个答案:

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