градиент фона журнала ggplot - PullRequest
0 голосов
/ 22 мая 2018

Мне нужен график ggplot2 с определенным фоном в направлении y.Y также является масштабом log2, идущим от 0,25 до 4, средняя точка, таким образом, 1. Экстремумы Y (.25 и 4) должны быть красного цвета, а средняя точка (1) должна быть зеленого цвета.

Диагональная градация цвета фонаграфика ggplot в R дал мне далеко и от того, что я написал это:

## create a diag gradient background
## create a df to supply the background to geom_tile
yseq <- seq(-2,2, length=100)

yseqlog2 <- 2^yseq

df <- expand.grid(x=0:100, y=yseqlog2) # dataframe for all combinations

## plot
bgplot <- ggplot(df, aes(x, y, fill=y)) +      # map fill to y
  geom_tile(alpha = 0.75) +      # let the grid show through a bit
  scale_fill_gradient2(low='red', high='red', mid = 'green',midpoint = 1) +  # choose your colours
  scale_y_continuous(trans = 'log2') # transform y axis to log2

bgplot

Это дает мне почти то, что я хочу, за исключением низкой интенсивности красного на 0,25.Смотрите рис.Как получить полный красный на 0,25?Спасибо.

/ Дженс

output showing low red intensity at .25

1 Ответ

0 голосов
/ 22 мая 2018

Вы можете использовать scale_fill_gradientn:

bgplot <- ggplot(df, aes(x, y, fill = y)) +
  geom_tile(alpha = 0.75) + 
  scale_fill_gradientn(colors = c("red", "green", "red"), 
                       limits = c(0.25, 4), 
                       trans = "log2") +  
  scale_y_continuous(trans = "log2")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...