首页 文章

避免在R中重叠轴标签

提问于
浏览
11

我想在图表中使用较大的字体大小绘制数据 .

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轴的标签重叠 . 我试图使用mar,但是这不起作用(顺便说一下,我怎样才能找出哪些图形参数可以在plot命令中直接使用,哪些必须用par() - 方法设置?) .

如何避免标签重叠?

谢谢你的帮助 .

斯文

3 回答

  • 0

    快速而肮脏的方式是使用 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 ,因为它们将收到 ... arugments . 还有一些调用未记录的函数(据我所知),如 localWindowlocalBox ,但我不认为它们只是被忽略了 .

  • 18

    您可以将mgp参数放入title()函数中,以避免之后重置默认值 . 这样,参数仅作用于函数添加的标签 . 像这样:

    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).
    
  • 2

    使用 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”'

    其余参数也可以设置为参数(通常通过
    '...')高级绘图函数,如'plot.default',
    'plot.window','points','lines','abline','axis','title',
    'text','mtext','segments','symbols','arrows','polygon',
    'rect','box','contour','filled.contour'和'image' . 这样
    设置将在执行功能期间处于活动状态,
    只要 . 但是,请参阅有关'bg'和'cex'的评论
    作为_arguments_被视为某些绘图函数而不是
    图形参数 .

相关问题