R plotrix包:用axis.break()打印两个轴标签

时间:2015-01-12 20:15:14

标签: r axis-labels plotrix

我正在尝试创建一个在轴上有间隔的图形。

它会创建.jpg图像,但会在此过程中打印两组x轴标签(参见附图)。

代码中出现什么错误导致此问题?

results = read.table("./ceu_asn_afr.txt",head=T)
library(plotrix)
jpeg("Figure1.1.jpg",width=2000,height=2000,res=300)
xgap <- ifelse(as.numeric(results[,1]) > 1.9, as.numeric(results[,1])-0.4, as.numeric(results[,1]))
plotCI(xgap,as.numeric(results[,3]),ui=as.numeric(results[,5]),li=as.numeric(results[,4]),err="y",gap=TRUE,sfrac=0.005, xlab="European odds ratio",ylab="African American odds ratio",cex=1.5,bty="l")
xat <- pretty(xgap)
xat <- xat[xat!=1.6]
xlab <- ifelse(xat>1.5, xat+0.4, xat)
axis(1,at=xat, labels=xlab)
axis.break(1,1.9,style="slash")
lines(c(0.75,2.5),c(0.75,2.5),lty=2)
close.screen(all=TRUE)
dev.off()

Output from code as it stands

1 个答案:

答案 0 :(得分:0)

根据https://stackoverflow.com/users/1855677/bondeddust的反馈,应修改代码以阅读(见双星号):

results = read.table("./ceu_asn_afr.txt",head=T)
library(plotrix)
jpeg("Figure1.1.jpg",width=2000,height=2000,res=300)
xgap <- ifelse(as.numeric(results[,1]) > 1.9, as.numeric(results[,1])-0.4, as.numeric(results[,1]))
plotCI(xgap,as.numeric(results[,3]),ui=as.numeric(results[,5]),li=as.numeric(results[,4]),err="y",gap=TRUE,sfrac=0.005, xlab="European odds ratio",ylab="African American odds ratio",cex=1.5,bty="l",**xaxt="n"**)
xat <- pretty(xgap)
xat <- xat[xat!=1.6]
xlab <- ifelse(xat>1.5, xat+0.4, xat)
axis(1,at=xat, labels=xlab)
axis.break(1,1.9,style="slash")
lines(c(0.75,2.5),c(0.75,2.5),lty=2)
close.screen(all=TRUE)
dev.off()

因为plotCI默认创建轴标签。