将带有斜体和上标的条形标签添加到条形图中

时间:2014-07-31 11:50:13

标签: r plot bar-chart axis-labels superscript

我正在使用barplot作为我的数据。

我需要插入带有上标的x轴条形标签(样本名称),并且应该是斜体。例如,其中一个样本名称(条形标签)是 lab(delta21)。除了整个名称用斜体字表示,我希望(delta21)中的delta为符号形式,(delta21)为实验的上标。 (这没什么特别的,只是如何编写生物基因突变体名称)。

我尝试摆弄names.arg=expression(),但无法让它发挥作用。

欢迎任何建议/想法。

2 个答案:

答案 0 :(得分:2)

请尝试这个最小的例子:

x <- rnorm(2)
barplot(x, names.arg = c(expression(paste(italic("1")^"st")), expression(paste(italic("2")^"nd"))))

italic()做斜体部分,^执行上标部分。

答案 1 :(得分:0)

您可能需要使用ggplot2来创建条形图,因为“粗体,斜体和粗体不适用于符号,因此不适用于希腊符号,例如mu”quoted from this help page。我还假设不同的数字被分配给不同的样本(例如,Lab_delta21,Lab_delta22等)。

library(ggplot2)
library(reshape)

## make up data
data_table <- cast(mtcars, gear ~., value="mpg", mean)
data_table <- rename(data_table, c("(all)"="mean_mpg"))

lab_number <- 21:23
fancy_labels <- sapply(lab_number, function(x) paste0("italic(Lab[delta]", "[", x, "])"))
ggplot(data_table, aes(gear, mean_mpg)) + geom_bar(stat = "identity") +
  scale_y_continuous(limits=c(0, 30))+
  geom_text(aes(label=fancy_labels), parse=TRUE, hjust=0.5, vjust=-0.5, size=7)

enter image description here

第二个“[]”必须与[delta][21]一样,因为没有它geom_text[delta21]识别为一个单词,而不将delta渲染为希腊字母。