【问题标题】:barplot design issues条形图设计问题
【发布时间】:2013-01-31 14:46:00
【问题描述】:

我正在做一个 14 列的条形图来表示一些数据,我将 names.arg 选项设置为显示为垂直标签,不幸的是,这导致新的垂直标签与我的“sub”和“xlab”选项重叠有。如何防止这种情况发生?

这是我的命令:

par(mar=c(6, 5, 4,7.5 ))
barplot(x, main=paste("title1 \n","subtitle"),
names.arg=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14),las=2, sub=("overlapping text1"),
xlab="overlapping text2", col = c("red2","darkorange3"))

我想到的另一个问题是,从命令中可以看出,我在“main”中使用了 2 行标题。是否可以使第二行字体更小,同时保持第一行的格式相同?

谢谢,

【问题讨论】:

    标签: r


    【解决方案1】:

    更改其中一个标题的字体大小的一种解决方案是在具有不同cex= 值的不同行中使用函数mtext() 的两次调用,并从barplot() 中删除main=。为了克服重叠文本的问题,mtext() 也可以用来代替xlab=sub=。您只需要找到正确的line= 并使用par(mar=..) 增加情节周围的空间。

    x<-sample(letters[1:14],300,replace=TRUE)
    par(mar=c(9,3,5,2))    
    barplot(table(x),
            names.arg=paste0("very_long_",1:14),las=2, 
            col = c("red2","darkorange3"))
    mtext(side=3,"Title1",line=2,cex=2)
    mtext(side=3,"subtitle",line=1,cex=1.5)
    
    mtext(side=1,"overlapping text1",line=6)
    mtext(side=1,"overlapping text2",line=7)
    

    【讨论】:

    • 感谢您的回答 Didzis。标题现在工作正常。我把勾去掉是因为重叠的文本对我不起作用。注意:在应用 barplot 函数之前,我使用 par() 来做尺寸,这就是为什么 mtext 不能在底部工作吗?请查看编辑以查看我的 par 函数。注意:我尝试将第 1 侧的 mtext 设置为 line=20 和 line = 30,但它仍然重叠。
    • 您只需要增加 par(mar=...) 中的数字,直到整个文本都适合绘图窗口,例如 par(mar=c(9, 5, 5,7.5 ))。
    • 天哪!对不起伙计!我正在调整 par() 函数中的第二个参数而不是第一个参数,哈哈。非常感谢 :) 现在一切正常。
    【解决方案2】:

    另一个值得关注的选项是 plotrix 包中的 staxlab 函数。

    另请查看par 函数的mgp 参数,了解设置轴标题默认位置的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多