Подтвердить что ты не робот

Как установить диапазоны оси в ggplot2 при использовании шкалы журнала?

У меня есть временный ряд данных, где измерения являются целыми числами от 1e6 до 1e8: хиты веб-сайтов в месяц. Я хочу использовать ggplot2 для построения диаграмм с точками и строками, но сопоставление измерений с масштабом журнала. Что-то вроде этого:

qplot(month, hits, data=hits.per.month, log="y")

Когда я это делаю, ggplot, похоже, устанавливает масштаб от 1e6 до 1e8. Я хочу, чтобы он масштабировался от 0 до 1e8. Естественный способ сделать это, похоже, не влияет на выход:

qplot(month, hits, data=hits.per.month, log="y", ylim=c(0, 100000000))

Я могу получить изображение, которое я хочу, преобразуя хиты, прежде чем он достигнет qplot, но это изменит метки на оси:

qplot(month, log10(hits), data=hits.per.month, log="y", ylim=c(0, 8))

Я также пробовал различные комбинации с scale_y_log10, но не повезло.

Итак, как установить диапазон оси Y при использовании шкалы журнала в ggplot2?

4b9b3361

Ответ 1

Большая часть ggplot2 просто понятна для меня, если вы не используете qplot. Таким образом, вы не кодируете все в один вызов функции:

df <- data.frame(x = 1:10,
                 y = seq(1e6,1e8,length.out = 10))

ggplot(data = df,aes(x = x, y =y)) + 
    geom_point() + 
    scale_y_log10(limits = c(1,1e8))

enter image description here

Я собираюсь предположить, что вы на самом деле не имели в виду минимальную ось y, равную 0, так как в логарифмическом масштабе, который, um, проблематичен.