轴标签与轴线重叠值
问题描述:
我在正确地绘制下图的标签的问题:轴标签与轴线重叠值
scatterhist = function(x, y, xlab="", ylab=""){
zones=matrix(c(2,0,1,3), ncol=2, byrow=TRUE)
layout(zones, widths=c(4/5,1/5), heights=c(1/5,4/5))
xhist = hist(x, plot=F, breaks=10)
yhist = hist(y, plot=F, breaks=10)
top = max(c(xhist$counts, yhist$counts))
par(mar=c(3,3,1,1))
plot(x, y)
par(mar=c(0,3,1,1))
barplot(xhist$counts, axes=FALSE, ylim=c(0, top), space=0)
par(mar=c(3,0,1,1))
barplot(yhist$counts, axes=FALSE, xlim=c(0, top), space=0, horiz=TRUE)
par(oma=c(3,3,0,0))
mtext(xlab, side=1, line=1, outer=TRUE, adj=0,
at=.8 * (mean(x)-min(x))/(max(x)-min(x)))
mtext(ylab, side=2, line=1, outer=TRUE, adj=0,
at=.8 * (mean(y)-min(y))/(max(y)-min(y)))
}
当I型:
scatterhist(x[,6], x[,7], xlab="Cost of Taxi", ylab="Cost of Fuel")
标签与所述轴的值重叠。但是,如果我输入:
scatterhist(x[,6], x[,7], xlab="Cost of Taxi", ylab="Cost of Fuel")
scatterhist(x[,6], x[,7], xlab="Cost of Taxi", ylab="Cost of Fuel")
第二个图形显示正确......任何人都可以帮我解决这个问题吗?我也试图通过windows()
打开图形窗口之前的第一个阴谋,但这是行不通的...
谢谢! Stefano
答
您的par(oma=c(3,3,0,0))
行应该在第一个par(mar=...)
调用之前出现,因为它应该应用于整个设备区域(即,如果已经绘制了某些图,则不能更改外边距的大小)。
scatterhist = function(x, y, xlab="", ylab=""){
zones=matrix(c(2,0,1,3), ncol=2, byrow=TRUE)
layout(zones, widths=c(4/5,1/5), heights=c(1/5,4/5))
par(oma=c(3,3,0,0))
xhist = hist(x, plot=F, breaks=10)
yhist = hist(y, plot=F, breaks=10)
top = max(c(xhist$counts, yhist$counts))
par(mar=c(3,3,1,1))
plot(x, y)
par(mar=c(0,3,1,1))
barplot(xhist$counts, axes=FALSE, ylim=c(0, top), space=0)
par(mar=c(3,0,1,1))
barplot(yhist$counts, axes=FALSE, xlim=c(0, top), space=0, horiz=TRUE)
mtext(xlab, side=1, line=1, outer=TRUE, adj=0,
at=.8 * (mean(x)-min(x))/(max(x)-min(x)))
mtext(ylab, side=2, line=1, outer=TRUE, adj=0,
at=.8 * (mean(y)-min(y))/(max(y)-min(y)))
}
清晰直接的答案,非常感谢! – Stezzo