我有以下问题。我有一个复杂的条形图,我想在图表的右侧添加描述。我的想法是基本上将右边(3月)的边距增加到15.0并直接在图表旁边绘制文本。这大部分时间都有效,但是如果我增加绘图窗口的大小,则在绘图区域之外绘制的文本太多,因为x位置是相对的"。有没有什么办法解决这一问题?因为现在我的x位置由此定义: MAX(ReturnMatrix)+0.005 当然,根据图表的宽度,这会将文本移到远处......
这是我的示例代码(我在Shiny中使用它,如果调整浏览器窗口大小,则会出现错误)
ReturnMatrix<-matrix(c(0.024, 0.007, 0.006, 0.001, -0.001, -0.002, -0.0011))
row.names(ReturnMatrix)<-c("Test1", "Test2", "Test3", "Test4", "Test5", "Test6", "Test7")
par(bg=rgb(199/255,228/255,246/255), mar=c(0,4,0,15.0))
bp<- barplot(ReturnMatrix,
beside=TRUE,
horiz=TRUE,
axes=FALSE,
space=3,
col=ifelse(ReturnMatrix>0,"green","red"))
text(ReturnMatrix,bp,signif(ReturnMatrix,1),pos=ifelse(ReturnMatrix>0,4,2), xpd=TRUE)
text(rep(max(ReturnMatrix)+0.005,7),bp,row.names(ReturnMatrix), xpd=TRUE, pos=4)
abline(v=0)
bp
答案 0 :(得分:0)
也许扩展情节区域以包含文字?
ReturnMatrix<-matrix(c(0.024, 0.007, 0.006, 0.001, -0.001, -0.002, -0.0011))
row.names(ReturnMatrix)<-c("Test1", "Test2", "Test3", "Test4", "Test5", "Test6", "Test7")
space=3
plot(0,0,type="n",xlim=c(min(ReturnMatrix),1.5*max(ReturnMatrix)),ylim=c(0,(space+1)*length(ReturnMatrix)),axes="off")
bp<- barplot(ReturnMatrix,
beside=TRUE,
horiz=TRUE,
axes=FALSE,
space=space,
add=TRUE,
col=ifelse(ReturnMatrix>0,"green","red")
)
text(ReturnMatrix,bp,signif(ReturnMatrix,1),pos=ifelse(ReturnMatrix>0,4,2), xpd=TRUE)
text(rep(1.25*max(ReturnMatrix),7),bp,row.names(ReturnMatrix), xpd=TRUE, pos=4)
# changed position to 1.25*max bar
abline(v=0)