我在R中生成了以下图:
代码:
ecdf.bdel<-ecdf(bDE[,6]) #### cumulative distribution of a vector of numeric values
curve(1-ecdf.bdel(x),col="red",xlim=r,xlab="r2",ylab="Fraction of SVs tagged") ###plotting inverse ecdf curve
情节如预期。但是,它会在轴刻度和轴标签之间以及轴标签和轴实验室之间留下巨大的空白区域。
有人可以提供任何提示来减少空白区域。
答案 0 :(得分:5)
像这样插入mgp
参数,看看它是否有效。另请参阅mar
参数以了解所有方面的保证金。您可以在par()
函数中同时使用它们来解决您的问题。
par(mgp=c(3,1,0),mar(5,4,4,2)+0.1)
curve(1-ecdf.bdel(x),col="red",xlab="r2",ylab="Fraction of SVs tagged")
first
中的mgp
值是axis labels
移动靠近或远离轴的位置,较小的值意味着更接近轴,高值意味着远离轴的两个轴即x轴和y轴。
second
中的mgp
值是tick labels
移动接近或远离刻度线的位置,较小的值意味着接近刻度线而高值意味着远离两个轴上的刻度线即x轴和y轴。
third
中的mgp
值是ticks
移动靠近或远离轴线本身的位置,值越小意味着越接近轴线,高值意味着远离轴线在轴上,即x和y。
mar
是c(bottom, left, top, right)
形式的数字向量,它给出了在图的四边指定的边距行数。默认值为c(5, 4, 4, 2) + 0.1
。
从xlim
功能中删除curve()
。您的图表条件
par(mgp=c(10,4,0),mar=c(11,11,5,5)+0.1)
curve(1-ecdf.bdel(x),col="red",xlab="r2",ylab="Fraction of SVs tagged")
par(mgp=c(3,1,0),mar=c(5,4,4,2)+0.1)
curve(1-ecdf.bdel(x),col="red",xlab="r2",ylab="Fraction of SVs tagged")
示例:使用plot
代替曲线。它是类似的
第一种情况:
par(mgp=c(7,3,0),mar=c(8,8,5,5)+0.1)
plot(1:10,xlab="X Axis", ylab="Y Axis", main="My Plot")
第二案例
par(mgp=c(3,1,0),mar=c(5,4,4,2)+0.1)
plot(1:10,xlab="X Axis", ylab="Y Axis", main="My Plot")
答案 1 :(得分:0)