条形图具有Y轴断点和误差条

时间:2016-12-04 03:19:11

标签: r

我正在尝试制作一个带有错误条y轴断裂的条形图。我知道plotrix包的gap.plot可以做到这一点,但我不喜欢锅的外观。我按照 HERE 的代码进行了操作,除非我不知道如何设置错误栏,否则它对我有用。我的代码就像这样

Caused by: java.lang.ClassCastException: org.apache.xerces.jaxp.DocumentBuilderFactoryImpl cannot be cast to javax.xml.parsers.DocumentBuilderFactory

并且情节看起来像这样 enter image description here

1 个答案:

答案 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)

enter image description here