Виридис и ggplot2 / ggmarginal - PullRequest
0 голосов
/ 19 июня 2019

Я столкнулся с проблемой при использовании viridis с ggplot2 и ggmarginal.

Я хотел бы раскрасить точки на графике Бленд-Альтмана, который я строю с помощью ggplot2:

diff <- (a1$A1_phones - a1$A1_video)
diffp <- (a1$A1_phones - a1$A1_video)/a1$A1_video*100
sd.diff <- sd(diff)
sd.diffp <- sd(diffp)
my.data <- data.frame(a1$A1_video, a1$A1_phones, diff, diffp)

dev.off()

diffplot <- ggplot(my.data, aes(a1$A1_video, diff)) + 
geom_point(size=2, colour = rgb(0,0,0, alpha = 0.5)) + 
theme_bw() + 
#when the +/- 2SD lines will fall outside the default plot limits 
#Thanks to commenter for noticing this.
ylim(mean(my.data$diff) - 7*sd.diff, mean(my.data$diff) + 7*sd.diff) +
geom_hline(yintercept = 0, linetype = 3) +
geom_hline(yintercept = mean(my.data$diff)) +
geom_hline(yintercept = mean(my.data$diff) + 2*sd.diff, linetype = 2) +
geom_hline(yintercept = mean(my.data$diff) - 2*sd.diff, linetype = 2) +
ylab("Difference Video vs Algorithm [ms]") +
xlab("Average of Video vs Algorithm [ms]")

p<-ggMarginal(diffplot, type="histogram", bins = 40)+ scale_colour_viridis_d()

enter image description here

Теперь было бы очень красиво раскрасить точки из A1_video иначе, чем точки из A1_phones, и чтобы viridis рисовал непрерывный график плотности.

1 Ответ

0 голосов
/ 19 июня 2019

Я не уверен, что это именно то, что вам нужно, пожалуйста, попробуйте конкретнее и предоставьте образцы данных. Если вы просто хотите, чтобы цвет менялся в зависимости от другого столбца в исходном наборе данных, он должен быть указан внутри функции aes ():

diffplot <- ggplot(my.data,aes(col=a1$A1_video))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...