R 无法修改ggplot2中的图例属性

R 无法修改ggplot2中的图例属性,r,ggplot2,colors,label,legend,R,Ggplot2,Colors,Label,Legend,我正在尝试修改此绘图图例上的颜色、标签和分隔符,但缩放xxx yyyy选项不起作用。有什么建议吗 我的输入如下: GENE CHR POS key value LOGP 1 A1BG 19 58862834 MAF1P-pval 0.6456014613 0.1900355 2 A1CF 10 52566602 MAF1P-pval 0.0005533904 3.2569684 3 A2M 12 922502

我正在尝试修改此绘图图例上的颜色、标签和分隔符,但缩放xxx yyyy选项不起作用。有什么建议吗

我的输入如下:

     GENE CHR       POS        key        value      LOGP
1   A1BG  19  58862834 MAF1P-pval 0.6456014613 0.1900355
2   A1CF  10  52566602 MAF1P-pval 0.0005533904 3.2569684
3    A2M  12   9225025 MAF1P-pval 0.6912238768 0.1603813
4  A2ML1  12   8975786 MAF1P-pval 0.6855731854 0.1639462
5 A4GALT  22  43089044 MAF1P-pval 0.3471331356 0.4595039
6  A4GNT   3 137843236 MAF1P-pval 0.6070832685 0.2167517
....
31205  ZBTB12   6  31868446 CADD20-pval 0.43193898 0.36457760
31206 ZCCHC24  10  81154122 CADD20-pval 0.01495022 1.82535253
31207 ZDHHC21   9  14619044 CADD20-pval 0.79231233 0.10110358
31208 ZMYND19   9 140477032 CADD20-pval 0.89922171 0.04613322
31209  ZNF710  15  90611241 CADD20-pval 0.07090869 1.14930051
31210  ZYG11B   1  53222142 CADD20-pval 0.27036413 0.56805093
变量键被编码为因子。 我已经用代码生成了下面的图:

ggplot(merge3, aes(x=POS, y=LOGP, color=Key)) + geom_point(size=0.3) + 
facet_grid(~CHR, switch="x", scales="free_x") + 
theme(axis.text.x=element_blank(),axis.ticks.x=element_blank(), panel.spacing.x=unit(0.001, "lines"), panel.grid = element_blank(), panel.border = element_blank(), strip.background=element_rect(fill="white")) + 
labs(title="stacked Manhattan MAF1P, CADD20", y="-log10(p)", x= "chromosome") + 
scale_y_continuous(limits=c(0,12), expand = c(0,0)) + 
geom_hline(yintercept=5.3, color = "red") + 
geom_hline(yintercept=3.3, color = "blue")
结合两个数据集的曼哈顿图

现在,我尝试使用以下方法修改图例的不同方面,如颜色、标题、标签或打断:

bp + scale_x_discrete(limits=c("MAF1"<="1%","CADD">="20"))
bp + scale_fill_discrete(name="Gene Sets", breaks=c("MAF <= 1%","CADD >=20"), labels=c("MAF1"<="1%","CADD">="20"))
bp + scale_fill_manual(values = c("#d8b365", "#f5f5f5"))
如果您有任何建议,我们将不胜感激。

请注意,您在代码中使用的是“Key”,而您显示的输入数据具有“Key”

首先,我们模拟一些看起来像您的数据:

library(TxDb.Hsapiens.UCSC.hg19.knownGene)
g = genes(TxDb.Hsapiens.UCSC.hg19.knownGene)
g = g[seqnames(g) %in% seqlevels(g)[1:24]]
seqlevels(g) = sub("chr","",seqlevels(g))

merge3 = data.frame(GENE=rep(g$gene_id,2),
CHR=rep(as.character(seqnames(g)),2),
POS=rep(start(g),2),
LOGP=-log10(runif(length(g)*2)),
Key = rep(c("MAF1P-pval","CADD20-pval"),each=length(g))
)
merge3$CHR = factor(merge3$CHR,levels=seqlevels(g)[1:24])
head(merge3)

       GENE CHR       POS       LOGP        Key
1         1  19  58858172 0.04981794 MAF1P-pval
2        10   8  18248755 1.83126403 MAF1P-pval
3       100  20  43248163 0.46686285 MAF1P-pval
4      1000  18  25530930 0.96742037 MAF1P-pval
5     10000   1 243651535 0.31012565 MAF1P-pval
6 100008586   X  49217763 0.61290850 MAF1P-pval
然后我们绘制:

bp = ggplot(merge3, aes(x=POS, y=LOGP, color=Key)) + geom_point(size=0.3) + 
facet_grid(~CHR, switch="x", scales="free_x") + 
theme(axis.text.x=element_blank(),axis.ticks.x=element_blank(), panel.spacing.x=unit(0.001, "lines"), panel.grid = element_blank(), panel.border = element_blank(), strip.background=element_rect(fill="white")) + 
labs(title="stacked Manhattan MAF1P, CADD20", y="-log10(p)", x= "chromosome") + 
scale_y_continuous(limits=c(0,12), expand = c(0,0)) + 
geom_hline(yintercept=5.3, color = "red") + 
geom_hline(yintercept=3.3, color = "blue")
最后一部分是修改图例,以便按字母顺序排列关键点,为了减少混淆,请先设置颜色:

COLS=c("#d8b365", "#f5f5f5")
names(COLS) = levels(merge3$Key)
然后,我们使用中断来颠倒顺序并给出标签:

bp+scale_color_manual(name="Gene Sets",values = COLS,
breaks = rev(names(COLS)),labels=c("MAF <= 1%","CADD >=20"))
bp+scale\u color\u手册(name=“Gene set”,value=COLS,
断开=版本(名称(COL)),标签=c(“MAF=20”))

我看到了一些可能有用的想法。首先,映射到
color
而不是
fill
。由于这是一个离散值,请尝试
scale\u color\u manual()
scale\u color\u discrete()
。其次,您用于
x
POS
变量在我看来是连续的,而不是离散的,这可能是
scale\u x\u discrete()
不适合您的原因。嗨,aosmith!
scale\u color\u手册()!!!谢谢但不幸的是,在将POS从连续修改为离散后,scale_x_discrete()不是。我想我最后的办法是改变关键变量的描述和它在DataFrame中的级别为什么你需要x是离散的?这是基因的位置,对吗?或者您想更改图例的顺序,就像之前的MAF一样CADD@StupidWolf是的,你是对的,我希望能够改变传说的顺序,以及它的内容,以便能够引入像@StupidWolf这样的特殊角色。谢谢你下面的建议,这些都很有效。是的,当我介绍上面的代码时,key vs key是一个拼写错误,我的错
bp+scale_color_manual(name="Gene Sets",values = COLS,
breaks = rev(names(COLS)),labels=c("MAF <= 1%","CADD >=20"))