Символы осевой оси для шкалы журнала в ggplot

Когда я пытаюсь выполнить одно из следующих значений, масштаб оси равен 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')

Ответ 1

Вы можете использовать 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)))

enter image description here