在ggplot2

时间:2015-04-22 09:35:19

标签: r ggplot2

我在ggplot图表中有一个颜色条,范围从白色到红色,白色边框在白色背景上看不太清楚。

有没有办法对图例中的刻度线进行不同的着色或在渐变比例周围添加边框?

这是一个最小的例子:

df <- data.frame(x <- rnorm(10),
                 y <- rnorm(10),
                 fill <- rnorm(10))

ggplot(df, aes(x, y, fill = fill)) + 
  geom_point() + 
  scale_fill_gradient(low = 'white', high = 'red')

enter image description here

2 个答案:

答案 0 :(得分:7)

使用element_rectfill参数为我的问题找到解决方案。

df <- data.frame(x <- rnorm(10),
                 y <- rnorm(10),
                 fill <- rnorm(10))

ggplot(df, aes(x, y, fill = fill)) + 
  geom_point() + 
  scale_fill_gradient(low = 'white', high = 'red') + 
  theme(legend.background = element_rect(fill = "grey95"))

enter image description here

我更喜欢颜色条周围的边框,但这似乎不可能......

答案 1 :(得分:7)

在最新的ggplot2(开发版本,将作为2.3发布)中,现在可以使用:

# devtools::install_github("tidyverse/ggplot2") # do this once
library(ggplot2)
df <- data.frame(x <- rnorm(10),
                 y <- rnorm(10),
                 fill <- rnorm(10))

ggplot(df, aes(x, y, fill = fill)) + 
  geom_point() + 
  scale_fill_gradient(low = 'white', high = 'red',
    guide = guide_colorbar(frame.colour = "black", ticks.colour = "black"))

enter image description here