代码之家  ›  专栏  ›  技术社区  ›  A.Benson

将x轴放置在y值为负值的条形图顶部

  •  4
  • A.Benson  · 技术社区  · 7 年前

    我有一些关于各种实验处理的数据,这些数据是负值。我想在条形图的顶部绘制x轴,并将标签放置在相同的位置,就像它是位于条形图中心的传统条形图一样。

    我检查了所有地方,找不到任何让我用文字命名轴标签的东西,只设置记号和数字。

    以下是数据:-“wp_的意思”

    >         12         15          3          6          9    Control 
    -0.3000000 -0.2416667 -0.3416667 -0.3916667 -0.2750000 -0.2750000 
            DL 
    -0.2833333
    

    这是我绘制条形图的代码。我可以把x轴从它通常的位置省略掉,但我似乎不能用它的标签等把它放在我想要的位置。

    cols<-c("blue1", "cyan","chartreuse","mediumspringgreen","maroon1","orange","red")
        wp<-data.frame(a=c(wp_means),b=c(12,15,3,6,9,"Control","DL"))
        wp$c=factor(wp$b, levels = c("Control",15,"DL",12,9,6,3))
        wp <- wp[order(wp$c), ]
        barplot(height=wp$a,names.arg=wp$c,col=cols,main="Water Potential",las=1,xaxt="n",
        ylab = "Water potential 
        (MPA)",pch=21,bg="black",cex=0.7,cex.lab=0.8,font.lab=2,
        cex.axis=0.7,font.axis=2,cex.main=1,ylim=c(-0.5,0),xaxt="n")
    

    "levels = c("Control"....)" 根据上述内容。我还想用通常使用的方法设置标签标题 xlab="some name" 不会影响我的图表标题。

    谢谢

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  5
  •   thelatemail    7 年前

    我认为合适的方法是使用 pos= 添加时的参数 ?axis 到您现有的 barplot bp <- barplot(...)

    wp_means <- c(-0.3, -0.2, -0.34, -0.39, -0.275, -0.275, -0.283)
    
    cols<-c("blue1", "cyan","chartreuse","mediumspringgreen","maroon1","orange","red")
    
    wp <-data.frame(a=c(wp_means),b=c(12,15,3,6,9,"Control","DL"))
    
    wp$c=factor(wp$b, levels = c("Control",15,"DL",12,9,6,3))
    wp <- wp[order(wp$c), ]
    bp <- barplot(height=wp$a, names.arg=wp$c, col=cols, las=1, xaxt="n",
             ylab = "Water potential (MPA)",
             pch=21, bg="black", cex=0.7, cex.lab=0.8, font.lab=2,
             cex.axis=0.7, font.axis=2, cex.main=1, ylim=c(-0.5,0), xaxt="n")
    
    axis(side=3, pos=0, at=bp, labels=levels(wp$c))
    title(main="Water Potential", line=3)
    

    line=3 添加时 title()

    enter image description here