如何在boxplot图中设置y范围?

时间:2016-07-07 14:20:16

标签: r plot boxplot

我在R中使用#rm(list=ls()) #B2 fps_error <- c(0.058404273, 0.028957446, 0.026276044, 0.07084294, 0.078438563, 0.024000178, 0.120678965, 0.081774358, 0.025644741, 0.02931614) fps_error = fps_error *100 fps_qp_error <-c(1.833333333, 1.69047619, 1.666666667, 3.095238095, 2.738095238, 1.714285714, 3.634146341, 5.142857143, 1.238095238, 2.30952381) bit_error <- c(0.141691737, 0.136173785, 0.073808209, 0.025057931, 0.165722097, 0.004276999, 0.365353752, 0.164757488, 0.003362543, 0.022423845) bit_error = bit_error *100 bit_qp_error <-c(0.666666667, 0.785714286, 0.428571429, 0.142857143, 0.785714286, 0.023809524, 1.523809524, 0.976190476, 0.023809524, 0.142857143) ssim_error <-c(0.01193773, 0.015151569, 0.003144532, 0.003182908, 0.008125274, 0.013796366, 0.00359078, 0.019002591, 0.005031524, 0.004370175) ssim_error = ssim_error * 100 ssim_qp_error <-c(3.833333333, 1.80952381, 0.69047619, 0.571428571, 2, 1.904761905, 0.761904762, 2.119047619, 0.857142857, 0.976190476) all_errors = cbind(fps_error, bit_error, ssim_error) all_qp_errors = cbind(fps_qp_error, bit_qp_error, ssim_qp_error) modes = cbind(rep("FPS error",10), rep("Bitrate error",10), rep("SSIM error",10)) journal_linear_data <-data.frame(fps_error, fps_qp_error,bit_error,bit_qp_error,ssim_error,ssim_qp_error ) yvars <- c("fps_error","bit_error","ssim_error") yvars_qp <-c("fps_qp_error","bit_qp_error","ssim_qp_error") xvars <- c("FPS", "Bitrate", "SSIM") graphics.off() bmp(filename="boxplot_B2_error.bmp") op <- par(mfrow = c(1, 3), #matrix of plots oma = c(0,0,2,0),mar=c(5.1, 7.1, 2.1, 2.1),mgp=c(4,1,0)) #outer margins par(cex.lab=3) par(cex.axis=3) for (i in 1:3) {boxplot(journal_linear_data[,yvars[i]], xlab=xvars[i], ylab="Percentage error", outcex = 2)} par(op) mtext(text="Percentage error per mode for B2",side=3, line=1.5, font=2, cex=2,adj=0.95, col='black') dev.off() 我的代码是:

{{1}}

图像输出如下所示。如您所见,y轴与所有图形的范围不同。我怎样才能解决这个问题?例如,从0.5或0开始。

enter image description here

1 个答案:

答案 0 :(得分:9)

您只需在所有ylim = c(0, 5)来电中加boxplot()即可。这将y轴范围(大致)设置在0到5之间。

也许你没有在ylim中看到?boxplot参数; &#34;参数&#34;部分也没有提到它。但ylim只是通过&#34; ...&#34;传递的一个简单的图形参数。你也可以在&#34;例子中找到这样的例子。会话?boxplot

 boxplot(len ~ dose, data = ToothGrowth,
         boxwex = 0.25, at = 1:3 - 0.2,
         subset = supp == "VC", col = "yellow",
         main = "Guinea Pigs' Tooth Growth",
         xlab = "Vitamin C dose mg",
         ylab = "tooth length",
         xlim = c(0.5, 3.5), ylim = c(0, 35), yaxs = "i")