相当于ggplot中对数刻度的轴标签

Sea*_*ean 11 r ggplot2

当我尝试下面的任何一个时,轴刻度是1e + 03,1e + 06,1e + 09 - 是否可以获得漂亮的上标10 ^ 3,10 ^ 6,10 ^ 9而不需要手动标记?我似乎记得在过去自动获得这个.

qplot(1:10, 10^(1:10))+scale_y_log10()
qplot(1:10, 10^(1:10), log='y')
Run Code Online (Sandbox Code Playgroud)

Did*_*rts 33

您可以使用库trans_breaks()trans_format()scales来获取所需的轴值格式.

library(scales)
qplot(1:10, 10^(1:10)) +
     scale_y_log10(breaks = trans_breaks("log10", function(x) 10^x),
              labels = trans_format("log10", math_format(10^.x)))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 我认为您正在寻找的是:“p+annotation_logticks()”作为参考,请查看http://ggplot2.tidyverse.org/reference/annotation_logticks.html (2认同)

Maë*_*aël 8

label_log您可以从包中使用scales

library(scales)
qplot(1:10, 10^(1:10)) +
  scale_y_log10(labels = label_log())
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述