【问题标题】:ggplot2 axis text formatting won't work with exponentsggplot2 轴文本格式不适用于指数
【发布时间】:2020-12-19 18:01:09
【问题描述】:

将 ggplot 的轴文本更改为某种表达式(在本例中为 10^.x)很容易。但是,当文本被转换时,它会失去粗体格式。

我想知道是否有一种方法可以保留粗体格式,但也有如下所示的指数标签。

library(ggplot2)

xxx <- data.frame(
  x = c(-5, -4, -3),
  y = c(1, 1, 1)
)

ggplot(xxx, aes(x, y)) + 
  geom_point() + 
  scale_x_continuous(label = scales::label_math(expr = 10^.x)) + 
  theme_bw(base_size = 20) + 
  theme(axis.text = element_text(face = "bold"))

reprex package (v0.3.0) 于 2020 年 8 月 31 日创建

【问题讨论】:

    标签: r ggplot2 grid plotmath


    【解决方案1】:

    发布后我解决了自己的问题。我根据this question 的答案改编了make_labels 函数。

    诀窍是将轴号粘贴为文本,然后在表达式中使用粗体(或斜体或其他)来控制格式。

    library(ggplot2)
    
    xxx <- data.frame(
      x = c(-5, -4, -3),
      y = c(1, 1, 1)
    )
    
    exp_bold <- function(lab) {
      do.call(
        expression,
        lapply(paste(lab), function(x) bquote(bold("10"^.(x))))
      )
    }
    
    ggplot(xxx, aes(x, y)) + 
      geom_point() + 
      scale_x_continuous(label = exp_bold) + 
      theme_bw(base_size = 20) + 
      theme(axis.text = element_text(face = "bold"))
    

    reprex package (v0.3.0) 于 2020 年 8 月 31 日创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多