【问题标题】:Setting Margins in R在 R 中设置边距
【发布时间】:2019-01-07 10:10:15
【问题描述】:

我在 R 中做一个箱线图,我想标记我的 Y 轴。名字很长,所以我想把底部边距变大以适应它们。有人告诉我,我需要做的是使用mar() 函数。但似乎无论我在函数中输入什么值,我的边距都不会改变!

我的箱线图是这样的:

我的 R 脚本如下所示:

boxplot(
  as.numeric(UEC$Q1_1)[3:21],
  as.numeric(UEC$Q1_2)[3:21],
  as.numeric(UEC$Q1_3)[3:21],
  as.numeric(UEC$Q1_4)[3:21],
  as.numeric(UEC$Q1_5)[3:21],
  as.numeric(UEC$Q1_6)[3:21],
  as.numeric(UEC$Q1_7)[3:21],
  as.numeric(UEC$Q1_8)[3:21],
  as.numeric(UEC$Q1_9)[3:21],
  as.numeric(UEC$Q1_10)[3:21],
  as.numeric(UEC$Q1_11)[3:21],
  as.numeric(UEC$Q1_12)[3:21],
  as.numeric(UEC$Q1_13)[3:21],
  as.numeric(UEC$Q1_14)[3:21],
  as.numeric(UEC$Q1_15)[3:21],
  as.numeric(UEC$Q1_16)[3:21],
  as.numeric(UEC$Q1_17)[3:21],
  as.numeric(UEC$Q1_18)[3:21],
  as.numeric(UEC$Q1_19)[3:21],
  as.numeric(UEC$Q1_20)[3:21],
  as.numeric(UEC$Q1_21)[3:21],
  as.numeric(UEC$Q1_22)[3:21],
  as.numeric(UEC$Q1_23)[3:21],
  as.numeric(UEC$Q1_24)[3:21],
  as.numeric(UEC$Q1_25)[3:21],
  as.numeric(UEC$Q1_26)[3:21],
  main="UEC Questions",
  names=c("annoying/enjoyable", "not understandable/understandable",    "creative/dull",    "easy to learn/difficult to learn", "valuable/inferior",    "boring/exciting",  "not interesting/interesting",  "unpredictable/predictable",    "fast/slow",    "inventive/conventional",   "obstructive/supportive", "good/bad",   "complicated/easy", "unlikable/pleasing",   "usual/leading edge",   "unpleasant/pleasant",  "secure/not secure",    "motivating/demotivating",  "meets expectations/does not meet expectations",    "inefficient/efficient",    "clear/confusing",  "impractical/practical",    "organized/cluttered",  "attractive/unattractive",  "friendly/unfriendly", "conservative/innovative"),
  las=2,
  mar=c(5.1, 4.1, 4.1, 2.1) 
  )

我知道我为边距输入的值可能是错误的,但它们无论如何都不起作用!

谁能建议我哪里出错了?

【问题讨论】:

  • 嗨!你能分享一个你的数据的例子吗?可能有更好的方法来绘制它,通常如果您必须复制/粘贴两次以上的内容,则可以通过其他方式完成。您可以先通过dput(UEC)向我们展示内容。

标签: r boxplot margins


【解决方案1】:

您可以在调用boxplot之前使用par

cex.axis 可以减小 x 轴的字体大小,mar 可以调整边框周围的间距。

注意顺序是mar=c("bottom-side", "left-side", "upper-side", "right-side")

par(cex.axis=0.8, mar=c(8, 4, 5, 2))
boxplot(as.numeric(data$qsec),
        as.numeric(data$mpg),
        names = c("areallylongtext", "anotherreallylongtext"), las=2)

请注意,您不应复制/粘贴所有这些 as.numeric(),而应使用如下示例中的分组变量:

par(cex.axis=0.8, mar=c(10, 4, 5, 2))
boxplot(mpg ~ cyl, data, 
        names=c("areallylongtext", "anotherreallylongtext", "yetanotherreallylongtext"), las=2)

【讨论】:

    猜你喜欢
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2011-05-19
    相关资源
    最近更新 更多