R graphics: Add labels to stacked bar chart

后端 未结 3 994
粉色の甜心
粉色の甜心 2020-12-19 19:46

I am looking for a way to add labels, i.e. absolute values, into a stacked bar chart using the basic plot functions of R. The labels should be inside the stacked bars.

相关标签:
3条回答
  • 2020-12-19 20:13

    Maybe you can use or inspect the barp function of the plotrix package

    0 讨论(0)
  • 2020-12-19 20:27

    barplot will return the mid x position of the bars, so you could do

    mydata <- matrix(c(10, 21, 22, 33, 45, 23, 22, 43, 33), nrow=3)
    
    # b will contain the x midpoints of the bars
    b <- barplot(mydata)
    
    # This will write labels in the middle of the bars, horizontally and vertically
    text(b, colMeans(mydata), c("Label1", "Label2", "Label3"))
    
    # This will write labels in the middle of the middle block
    text(b, mydata[1,]+mydata[2,]/2, c("LabelA", "LabelB", "LabelC"))
    

    EDIT: re-reading your question, I think this is what you want (or maybe not, but I'll write it anyways :D)

    # Find the top y position of each block 
    ypos <- apply(mydata, 2, cumsum)
    # Move it downwards half the size of each block
    ypos <- ypos - mydata/2
    ypos <- t(ypos)
    
    text(b, ypos, mydata)
    
    0 讨论(0)
  • 2020-12-19 20:28

    How about the simple function text()?

    You can simply add a string where ever you want, eg:

    text (x = ..., y = ..., labels = c("foo bar 1000"))
    
    0 讨论(0)
提交回复
热议问题