gpt4 book ai didi

r - 使用两个比例颜色渐变ggplot2

转载 作者:行者123 更新时间:2023-12-03 20:39:14 25 4
gpt4 key购买 nike

如果有的话,我认为必须有一个非常简单的解决方案。我有两个基本上看起来像这样的大数据框:

> data1[1,]
chromosome start end test ref position log2 p.value
13600 Y 10199251 10200750 533 616 10200000 0.2181711 0.00175895
...

> data2[1,]
chromosome start end test ref position log2 p.value
4080 Y 10197501 10202500 403 367 10200000 0.04113596 0.3149926
...


我正在使用此代码将两个数据框绘制到同一张图中:

p <- ggplot() + geom_point(data=subset(data1, p.value >= glim[1]),
map=aes(x=position, y=log2, colour=p.value))
+ geom_point(data=subset(data2, p.value >= glim[1]), map=aes(x=position,
y=log2, colour=p.value))


当我绘制单个数据帧时,我对“ p.value”列中的值使用了红白色渐变。使用此行:

p <- p + scale_colour_gradient(limits=glim, trans='log10', low="red", 
high="white")


中心问题是:现在有了两个数据框,如何为data1设置一个颜色渐变,为data2设置另一个颜色渐变?我在上一篇文章中读到,不可能使用两种不同的色标(例如,第一个使用“ low =“,第二个使用“ high =”),但是在这种情况下,色标是完全相同的(如果我不混淆术语)。语法显然是不正确的,但我想做这样的事情:

p <- p + scale_colour_gradient(limits=glim, trans='log10', low="red", 
high="white")

p <- p + scale_colour_gradient(limits=glim, trans='log10', low="blue",
high="white")

最佳答案

首先,请注意ggplot不鼓励这样做的原因是因为这些图往往难以解释。

您可以通过作弊来获得两个颜色渐变标尺。在geom_point中,某些形状(21到25)可以同时具有填充和颜色。您可以利用它来创建一个具有“填充”比例的图层,以及另一个具有“颜色”比例的图层。

# dummy up data
dat1<-data.frame(log2=rnorm(50), p.value= runif(50))
dat2<-data.frame(log2=rnorm(50), p.value= runif(50))

# geom_point with two scales
p <- ggplot() +
geom_point(data=dat1, aes(x=p.value, y=log2, color=p.value), shape=21, size=3) +
scale_color_gradient(low="red", high="gray50") +
geom_point(data= dat2, aes(x=p.value, y=log2, shape=shp, fill=p.value), shape=21, size=2) +
scale_fill_gradient(low="gray90", high="blue")
p

关于r - 使用两个比例颜色渐变ggplot2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18347147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com