geom_qq图中的着色点

时间:2017-04-04 20:28:26

标签: r ggplot2

我想基于与它们相关联的某个变量为geom_qq(别名stat_qq)分位数 - 分位数图中的点着色。

一个例子是基于mtcars$mpg的值对mtcars$disp的分位数 - 分位数图的点进行着色,我已经尝试过各种方式:

library(ggplot2)
pA = ggplot(mtcars) + geom_qq(aes(sample = mpg))
pB = ggplot(mtcars) + geom_qq(aes(sample = mpg, color=disp))
pC = ggplot(mtcars) + geom_qq(aes(sample = mpg, fill=disp), shape=21)
pD = ggplot(mtcars) + geom_qq(aes(sample = mpg, color=as.factor(disp)))

library(cowplot)
plot_grid(pA,pB,pC,pD,labels=LETTERS[1:4])

Failure to color stat_qq points

不幸的是,当mtcars$disp被视为分类变量( D )时,这些点才会显示为彩色,在这种情况下,数据会产生几个系列的点,其中计算理论分位数分开(使他们的模式改变)。

我希望将mtcars $ disp视为一个连续变量来决定每个点的颜色,我可以手动完成:

manual_colors = colorRampPalette(c("blue","red"))(100)[as.numeric(cut(mtcars$disp,breaks=100))]
ggplot(mtcars) + geom_qq(aes(sample = mpg), color=manual_colors)

Desired result

实现此结果的ggplot2语法是什么?

1 个答案:

答案 0 :(得分:1)

>>> if True: break SyntaxError: 'break' outside loop 似乎无法允许此操作。理论上,如果您可以从

更改this line
while

geom_qq

它可能会起作用,但对我而言,最简单的尝试方法并不明显。

相反,我建议你自己计算一下这些值。这很简单。你可以使用这样的功能

data.frame(sample, theoretical)

然后你可以制作这样的情节

data.frame(sample, theoretical, data)

enter image description here