【问题标题】:Adding bar labels with italics and superscript to a barplot将带有斜体和上标的条形标签添加到条形图
【发布时间】:2014-07-31 11:50:13
【问题描述】:

我使用barplot 存储我的数据。

我需要插入带有上标且应为斜体的 x 轴条形标签(样本名称)。例如,样本名称(条形标签)之一是 lab(delta21)。除了全名用斜体字外,我希望 (delta21) 中的 delta 为符号形式,而 (delta21) 为 lab 的上标。 (这没什么花哨的,只是生物基因突变名称的写法)。

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

欢迎提出任何建议/想法。

【问题讨论】:

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


    【解决方案1】:

    请试试这个最小的例子:

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

    italic() 是斜体部分,^ 是上标部分。

    【讨论】:

      【解决方案2】:

      您可能需要使用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 转换为希腊字母。

      【讨论】:

        猜你喜欢
        • 2014-07-04
        • 2018-08-14
        • 2011-01-09
        • 2021-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-20
        相关资源
        最近更新 更多