Ответ 1
1) См. параметр scipen
в ?options
, который является штрафом против использования научной нотации. Для лучшего управления вам нужно нарисовать ось вручную с помощью ярлыков, которые вы хотите.
2) См. las
в ?par
, который контролирует грубую ориентацию меток оси.
Для 1):
x <- rnorm(20)^2 * 10000000
layout(matrix(1:2, ncol = 2))
plot(x)
getOption("scipen")
opt <- options("scipen" = 20)
getOption("scipen")
plot(x)
options(opt)
layout(1)
который дает
Чтобы построить собственную ось, попробуйте
plot(x / 10000000, axes = FALSE)
axis(1)
pts <- pretty(x / 10000000)
axis(2, at = pts, labels = paste(pts, "MM", sep = ""))
box()
Что дает
Где мы используем pretty()
для выбора симпатичных местоположений для тиков, так же как R будет, а затем добавить пользовательскую ось. Обратите внимание, как мы подавляем рисование оси в вызове plot()
, а затем добавляем назад оси и рамку графика с вызовами axis()
и box()
.
Для 2) комбинирования с 1)
opt <- options("scipen" = 20)
op <- par(mar = c(5,7,4,2) + 0.1) ## extra margin to accommodate tick labs
x <- rnorm(20)^2 * 10000000
plot(x, las = 1, ylab = "") ## no y-axis label
title(ylab = "label", line = 5.5) ## need to plot the axis label
par(op)
options(opt)
Что дает
Обратите внимание на то, как мы используем las
в вызове plot()
, и нам нужно создать дополнительное пространство в поле для размещения ярлыков меток. Нам также нужно нанести ярлык вручную, иначе R будет прикрепляться к ярлыкам меток.
Для ярлыков пользовательской оси добавьте вызов las = 1
к вызову axis()
:
op <- par(mar = c(5,5,4,2) + 0.1)
plot(x / 10000000, axes = FALSE, ylab = "")
axis(1)
pts <- pretty(x / 10000000)
axis(2, at = pts, labels = paste(pts, "MM", sep = ""), las = 1)
title(ylab = "my label", line = 4)
box()
par(op)
Что производит