使用变量参数作为图表中图例文本和颜色的输入

时间:2016-07-18 13:06:51

标签: r

我有一些变量,想在图例中使用颜色,只需它的工作如下:

## fake plot
plot(0)
## color legend
LCol <- c("PValue > 0.05"="dimgray","PValue <0.05"="red", "PValue <0.05&logFC>|1|"="darkturquoise", "adj.P.Val <0.1&logFC>|1|"="navy")
## legend
legend('topright', legend=rev(names(LCol)), pch = 19, col=rev(LCol),cex=.6)

但是我想用bquote函数替换图例文本中的变量值,我尝试了:

## Parameters
padj_Cutoff <- 0.1
pval_Cutoff <- 0.05
logFC_Cutoff <- 1
mylegend <- c(bquote(PValue > .(pval_Cutoff)),
          bquote(PValue < .(pval_Cutoff)),
          bquote(c(PValue,lfc) < .(c(pval_Cutoff,logFC_Cutoff))),
          bquote(c(adj.P.Val,lfc) < .(c(padj_Cutoff,logFC_Cutoff))))

plot(0)
leg.col <- c("dimgray", "red","darkturquoise","navy")
legend('topright', legend=rev(mylegend), pch = 19,col = rev(leg.col),cex=.6)

但是传说与我的预期并不相似(请参阅附图中的预期图例)。

预期的传说请找到这个数字。

enter image description here

1 个答案:

答案 0 :(得分:0)

我不会在这里使用bquote - 你没有通过这样做获得任何东西。 paste可以满足您的需求。

padj_Cutoff <- 0.1
pval_Cutoff <- 0.05
logFC_Cutoff <- 1
mylegend <- c(paste0("PValue > ", pval_Cutoff),
              paste0("PValue > ", pval_Cutoff),
              paste0("PValue < ", pval_Cutoff, 
                     " & logFC > |", logFC_Cutoff, "|"),
              paste0("adj.PValue < ", padj_Cutoff, 
                     " & logFC > |", logFC_Cutoff, "|"))
plot(0)
leg.col <- c("dimgray", "red","darkturquoise","navy")
legend('topright', legend=rev(mylegend), pch = 19,col = rev(leg.col),cex=.6)

enter image description here

使用特殊字符时,

bquote非常有用。例如:

plot(0, type = "n")
text(1, 0, labels = bquote(paste(mu)))

enter image description here