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)
Который производит