我正在使用barplot
作为我的数据。
我需要插入带有上标的x轴条形标签(样本名称),并且应该是斜体。例如,其中一个样本名称(条形标签)是 lab(delta21)。除了整个名称用斜体字表示,我希望(delta21)中的delta为符号形式,(delta21)为实验的上标。 (这没什么特别的,只是如何编写生物基因突变体名称)。
我尝试摆弄names.arg=expression()
,但无法让它发挥作用。
欢迎任何建议/想法。
答案 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)
第二个“[]”必须与[delta][21]
一样,因为没有它geom_text
将[delta21]
识别为一个单词,而不将delta
渲染为希腊字母。