首页 > 解决方案 > R ggplot2 轴文本在对数刻度中消失

问题描述

我正在尝试创建一个图,其中一个或两个轴是对数刻度,轴文本以指数表示法格式化,例如 10^-2,但“-2”是上标的。按照 Winston Chang 的书中给出的示例以及在网上找到的示例,我过去已经成功地做到了这一点。但是,如果我使用以前工作的相同代码,轴文本就会消失。一个可重现的例子:

library(tidyverse)
library(scales)

plot.dat <- tibble(
  time = seq(from = 0, to = 5, by = 0.2),
  C = exp(-2*time)
  )

ggplot(data = plot.dat, mapping = aes(x = time, y = C)) +
  geom_point() +
  scale_y_log10(
    breaks = trans_breaks('log10', function(x) 10^x),
    labels = trans_format('log10', math_format(10^.x))
    ) +
  theme(
    axis.text.y = element_text(colour = "red", size = rel(1.5))
  )

注意 - 我添加了主题声明只是为了检查文本颜色或大小是否由于某种原因没有改变。问题似乎与部分中的labels行有关scale_y_log10- 出现注释行和轴文本,尽管不是所需的格式:
在此处输入图像描述 取消注释该行并且文本消失:
在此处输入图像描述 这发生在scale_x_log10and scale_y_log10。有两件事让我觉得有些东西发生了变化,scales但我似乎无法弄清楚它是什么:1)这个问题发生在试图重现 Chang 书中给出的示例(图 8-27)时,2)问题发生使用以前成功的脚本时。

标签: rggplot2axis-labels

解决方案


推荐阅读