Я пытаюсь воссоздать два графика слева: градиент цвета должен быть светлее в 0 и темнее при экстремальных значениях.Я хочу использовать пакет viridis для создания цветового градиента.
Вот мой пример набора данных:
library(tidyverse)
library(viridis)
# simulate t-values
data = data.frame(sim =1:10000,
t_0= rt(n = 10000,df =12, ncp=0),
t_1 = rt(n = 10000,df =12, ncp=1.2))
# compute p-values
data = data %>%
mutate(p_0 = 2* pt(t_0, df=12, lower.tail = ifelse(t_0 > 0,FALSE ,TRUE)),
p_1 = 2* pt(t_1, df=12, lower.tail = ifelse(t_1 > 0,FALSE ,TRUE)))
# convert from wide to long
data.long = data %>%
gather(condition,measurement, t_0:p_1) %>%
separate(col=condition, into=c("para","hyp"), sep = "_")
# convert to wide repeated measures format
data.wide = data.long %>% spread(key = para, measurement)
Вот то, что я пробовал, однако цвет здесь сосредоточен вокруг среднего значения наось х вместо центрирования на 0. Я не могу понять, как все сделать правильно, я думаю, что это что-то из-за попытки использовать scale_fill с гистограммой.
ggplot(data.wide) +
geom_histogram(aes(x=t,fill=..x..),
binwidth=.01 )+
scale_fill_gradientn(colours = c(viridis::viridis(5),
rev(viridis::viridis(5))[2:5]))+
facet_wrap(~ hyp ,ncol=1)
Что дает мне такой вывод: