情节中的单独颜色

时间:2011-05-09 09:49:12

标签: r ggplot2

我有一个不同颜色的geom_tile图表,每个图表代表数据中的一个值。

我想用一条不同于绘图颜色的颜色的线条分隔绘图中的每个颜色范围。

e.g(-0.5<=0<0.5 colored red)
e.g(0<0.5<1 colored blue)

这可以在R?

中完成

我需要将这些范围用geom_tile上的一行分隔。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

使用colour参数更改边框的颜色。

改编自?geom_tile上的一个示例。

pp <- function (n,r=4) {
      x <- seq(-r*pi, r*pi, len=n)
      df <- expand.grid(x=x, y=x)
      df$r <- sqrt(df$x^2 + df$y^2)
      df$z <- cos(df$r^2)*exp(-df$r/6)
      df
     }
p <- ggplot(pp(20), aes(x=x,y=y)) + 
  geom_tile(aes(fill = z), colour = "black")
p

或者您的意思是“我想为不同的瓷砖组指定填充颜色”。一种方法是将fill变量转换为一个因子并调用scale_fill_manual

dfr <- pp(20)
dfr$discrete_z <- cut(dfr$z, c(-1, 0, 1)) # makes z a factor

p <- ggplot(dfr, aes(x=x,y=y)) + 
  geom_tile(aes(fill = discrete_z)) + 
  scale_fill_manual(
    values = c("red", "blue")
  )
p