【问题标题】:R boxplot; center the axis labels under the tick marksR箱线图;在刻度线下居中轴标签
【发布时间】:2018-02-22 19:27:26
【问题描述】:

我使用以下代码绘制了一个数据框(16700 个变量,共 6 个变量):

labels <–c("X2137_Fe20","X2137_FeXS","vtc1_Fe20",
"vtc1_FeXS","VTC1c_Fe20","VTC1c_FeXS") #labels x axis
[1]col <- c("chartreuse3", "chocolate2", "chartreuse3", "chocolate2", 
"chartreuse3", "chocolate2") #colors

#Plot
boxplot(CVtable, 
    outline = FALSE, 
    ylim = c(-0.5,70), 
    main="CV Replicas",
    ylab="RSD(%)",
    range = 1.5,
    width = c(9,9,9,9,9,9),
    plot = TRUE,
    col = col,
    par (mar = c(5,4.5,5,0.5) + 0.1), 
    par(cex.lab=2), 
    par(cex.axis=1.7), 
    notch = TRUE,
    labels = labels)
dev.off()

This is the result

我喜欢这个箱形图,但有几件事我想调整。我需要为 x 轴标签保留这个字体大小,但正如您所见,标签太大,其中一部分被遗漏了。解决方案是将它们旋转 45 度,但我无法找到一个简单的代码插入到我的脚本中。

我试图删除原来的轴 (axes=FALSE),然后设置新的轴

boxplot(CVtable, 
    outline = FALSE, 
    ylim = c(0.5,70), 
    ylab="RSD(%)",
    range = 1.5,
    width = c(9,9,9,9,9,9),
    plot = TRUE,
    col = col,
    par (mar = c(5,4.5,5,0.5) + 0.1), 
    notch = TRUE,
    par(cex.lab=1.7),
    axes=FALSE)

axis(1, at = c(1,2,3,4,5,6), labels = F, tick = 2, line = NA,
 pos = -1, outer = F, font = 3, lty = "solid",
 lwd = 2, lwd.ticks = 3, col = NULL, col.ticks = NULL,
 hadj = NA, padj = 0)

axis(2, at = c(0,10,20,30,40,50,60,70) , labels = 
 c(0,10,20,30,40,50,60,70), tick = 2, line = NA,
 pos = 0.5, outer = FALSE, font = 1, lty = "solid",
 lwd = 2, lwd.ticks = 3, col = NULL, col.ticks = NULL,
 hadj = NA, padj = 0, par(cex.lab=1.5))

text(x=c(1,2,3,4,5,6), 
 y=par()$usr[3]-0.1*(par()$usr[4]-par()$usr[3]),
 labels=labels, srt=45, adj=1, xpd=TRUE, par(cex.lab=2))

这是输出:img2 好吧,我不知道如何将我的标签置于刻度线下方,以及如何将 x 轴延伸到图形的原点(左)和最后一个框的末端(右)。此外,用于修复 x 轴标签字体大小的参数 par(cex.lab=2) 似乎不再适用于该字符串。

有什么好的建议吗?

PS:这是我的第一篇文章,如有遗漏,请留言,我会尽快回复。谢谢!

【问题讨论】:

    标签: r boxplot par labeling


    【解决方案1】:

    我自己做的:

     #RSD
    boxplot(CVtable[1:6], 
        outline = FALSE,
        ylim = c(0.5,70), 
        ylab="RSD(%)",
        range = 1.5,
        width = c(9,9,9,9,9,9),
        plot = TRUE,
        col = col,
        par (mar = c(7,4.5,1,0.5) + 0.1),  
        notch = TRUE,
        par(cex.lab=1.7),
        axes=FALSE)
    
    axis(1, at = c(0.5,1,2,3,4,5,6,7), labels = F, tick = 2, line = NA,
     pos = -1, outer = F, font = 3, lty = "solid",
     lwd = 2, lwd.ticks = 3, col = NULL, col.ticks = NULL,
     hadj = NA, padj = 0)
    
    axis(2, at = c(0,10,20,30,40,50,60,70) , labels = 
    c(0,10,20,30,40,50,60,70), tick = 2, line = NA,
     pos = 0.5, outer = FALSE, font = 4, lty = "solid",
     lwd = 2, lwd.ticks = 3, col = NULL, col.ticks = NULL,
     hadj = NA, padj = 0, par(cex=1.4))
    
    text(x=c(0.7,1.7,2.7,3.7,4.7,5.7), 
     y=par()$usr[3]-0.14*(par()$usr[4]-par()$usr[3]),
     labels=labels, srt=45, adj=0.6, xpd=TRUE, cex=1, font=2)
    
    dev.off()
    

    这是结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多