我正在尝试制作一个带有错误条y轴断裂的条形图。我知道plotrix包的gap.plot可以做到这一点,但我不喜欢锅的外观。我按照 HERE 的代码进行了操作,除非我不知道如何设置错误栏,否则它对我有用。我的代码就像这样
Caused by: java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl cannot be cast to javax.xml.parsers.DocumentBuilderFactory
答案 0 :(得分:1)
使用subplot
对您有利,即使用cnvrt.coords
计算正确的坐标,fun
可以是使用这些新坐标评估的任何表达式
因此,如果我们在子画面函数中创建所需的图形,则应使用新的坐标。
data=data.frame(CAx=120,CAp=32,CTAx=12,CTAp=4,MTAX=6,MTSAx=3)
lower=c(0,55)
upper=c(95,140)
y_outer=21
lowspan=c(0,11)
topspan=c(lowspan[2]+1,21)
ylabel="y-axis value"
xlabel="x-axis value"
legendtext=c('C-Ax','C-Ap','CT-Ax','CT-Ap','MT-AX','MTS-Ax')
plot(c(0,1),c(0,y_outer),type='n',axes=FALSE,ylab=ylabel,xlab='',lwd=7)
subplot({
y <- as.matrix(data)
bp <- barplot(y,col=heat.colors(2),ylim=lower,xpd=FALSE,las=3)
arrows(bp, y * .95, bp, y * 1.05, xpd = NA, angle = 90, code = 3,
length = .1, col = ifelse(y > max(lower), 0, 1))
},x=c(0,1),y=lowspan)
subplot({
bp <- barplot(y, col=heat.colors(2), ylim=upper, xpd=FALSE,
names.arg=vector(mode="character",length=length(data)))
arrows(bp, y * .95, bp, y * 1.05, xpd = NA, angle = 90, code = 3,
length = .1, col = ifelse(y > max(lower), 1, 0))
}, x=c(0,1), y=topspan)