Избегайте перекрытия меток оси в R

Я хочу построить данные в графе с большим размером шрифта для таблиц.

x = c(0:10)
y = sin(x) + 10

plot (
    x, y, type="o",
    xlab = "X values",
    ylab = "Y values",
    cex.axis = "2",
    cex.lab = "2",
    las = 1
)

К сожалению, числа на оси y перекрывают метку для оси y. Я попытался использовать мар, но это не сработало (кстати, как я могу узнать, какие графические параметры могут быть непосредственно использованы в команде plot и которые должны быть установлены с помощью метода par()?).

Как я могу избежать перекрытия меток?

Спасибо за вашу помощь.

Свен

Ответ 1

Используйте par(mar) для увеличения полей графика и par(mgp) для перемещения метки оси.

par(mar = c(6.5, 6.5, 0.5, 0.5), mgp = c(5, 1, 0))
#Then call plot as before

На странице справки ?par он объясняет, какие параметры могут использоваться непосредственно в plot и которые должны быть вызваны через par.

Есть несколько параметров, которые могут быть заданы только вызовом 'par():

    • ‘"ask"’,

    • ‘"fig"’, ‘"fin"’,

    • ‘"lheight"’,

    • ‘"mai"’, ‘"mar"’, ‘"mex"’, ‘"mfcol"’, ‘"mfrow"’, ‘"mfg"’,

    • ‘"new"’,

    • ‘"oma"’, ‘"omd"’, ‘"omi"’,

    • ‘"pin"’, ‘"plt"’, ‘"ps"’, ‘"pty"’,

    • ‘"usr"’,

    • ‘"xlog"’, ‘"ylog"’

 The remaining parameters can also be set as arguments (often via
 ‘...’) to high-level plot functions such as ‘plot.default’,
 ‘plot.window’, ‘points’, ‘lines’, ‘abline’, ‘axis’, ‘title’,
 ‘text’, ‘mtext’, ‘segments’, ‘symbols’, ‘arrows’, ‘polygon’,
 ‘rect’, ‘box’, ‘contour’, ‘filled.contour’ and ‘image’.  Such
 settings will be active during the execution of the function,
 only.  However, see the comments on ‘bg’ and ‘cex’, which may be
 taken as _arguments_ to certain plot functions rather than as
 graphical parameters.

Ответ 2

Быстрый и грязный способ - использовать par и добавить новую строку в ylab, хотя это концептуально ужасно.

x = 0:10
y = sin(x) + 10

par(mar=c(5,7,4,2))
plot (
    x, y, type="o",
    xlab = "X values",
    ylab = "Y values\n",
    cex.axis = "2",
    cex.lab = "2",
    las = 1
)

Что касается параметров, которые вы можете установить непосредственно в plot, посмотрите на ?plot.default и ?plot.xy, так как они получат награды .... Также есть несколько вызовов недокументированных функций (насколько я могу найти), таких как localWindow и localBox, но я не знаю, что с ними происходит. Я бы предположил, что их просто игнорируют.

Ответ 3

Вы можете поместить параметр mgp в функцию title(), чтобы избежать необходимости после reset ваших значений по умолчанию. Таким образом, параметр действует только на метки (метки), добавленные функцией. например:

plot (
x, y, type="o",
xlab = "",         #Don't include xlab in main plot
ylab = "Y values",
cex.axis = "2",
cex.lab = "2",
las = 1
)
title(xlab="X values"
 ,mgp=c(6,1,0))    #Set the distance of title from plot to 6 (default is 3).