简体   繁体   English

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

[英]Placing an x axis on top of a bar plot with negative y values

I have some data for various experimental treatments which are negative values. 我有一些数据用于各种实验性治疗,这些数据都是负值。 I'd like to plot the x-axis on top of the bar-plot and have the labels located the same as if it were a traditional bar-plot at the centre of the bars. 我想将条形图绘制在条形图的顶部,并使标签的位置与条形图中心的传统条形图相同。

I've checked all over and can't find anything that lets me name the axis labels with words, only setting tick marks and numbers. 我已经检查了一遍,找不到任何能让我用文字命名轴标签,只设置刻度线和数字的东西。

Here's the data: - "wp_means" 这是数据: - “wp_means”

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

Here's my code to plot the bar-plot. 这是我绘制条形图的代码。 I can omit the x-axis from it's usual position, but I can't seem to get it on top with its labels etc. where I want it to be. 我可以从它通常的位置省略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")

And here's the plot: I'd like to have the labels on the upper x axis in the order they appear in "levels = c("Control"....)" per above. 这是情节:我希望上面的x轴上的标签按照它们出现在"levels = c("Control"....)"上面的顺序。 I'd also like to set a label title the same way one would usually do with xlab="some name" without it interfering with my chart title. 我也想设置一个标签标题,就像人们通常用xlab="some name"而不会干扰我的图表标题。

Thanks 谢谢

在此输入图像描述

The appropriate method I believe is to use the pos= argument when adding an ?axis to your existing barplot . 我认为适当的方法是在向现有barplot添加?axis时使用pos=参数。 You will need to save the positions of the bar centres first however. 但是,您需要先保存酒吧中心的位置。 Like bp <- barplot(...) , so: 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)

Note the use of line=3 when adding a title() which pushes your chart title away from the group labels. 注意在添加title()时使用line=3会将图表标题推离组标签。

在此输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM