2013-03-02 3 views
11

Когда я пытаюсь выполнить одно из следующих значений, масштаб оси равен 1e + 03, 1e + 06, 1e + 09 - возможно ли получить хорошие надстрочные 10^3, 10^6, 10^9 вместо того, чтобы прибегать к ручной маркировке? Кажется, я вспоминаю это автоматически в прошлом.Симпатичные осевые метки для шкалы шкалы в ggplot

qplot(1:10, 10^(1:10))+scale_y_log10() 
qplot(1:10, 10^(1:10), log='y') 

ответ

27

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

+0

, как я мог бы добавить тире между 10 и 1000 (например, 200, 500 и 700) на оси у? –

+0

Я думаю, что вы ищете: «p + annotation_logticks()» Для справки смотрите http://ggplot2.tidyverse.org/reference/annotation_logticks.html – dabsingh

Смежные вопросы