R plot:总是在相对于绘图的相同绝对距离处绘制文本

时间:2015-05-21 13:39:32

标签: r plot

我有以下问题。我有一个复杂的条形图,我想在图表的右侧添加描述。我的想法是基本上将右边(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

1 个答案:

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