I have used the following code in R to generate this graph:
x <- c(0.916, 0.815, 0.101, -0.029, -0.166, 0.949, 0.073, -0.054, 1.006)
y <- c(3.91, 5.17, 1.08, 1.28, 1.01, 4.37, 3.97, 0.77, 4.52)
sd <- c(0.35, 2.26, 0.17, 0.08, 0.27, 0.49, 0.65, 0.12, 1.45)
windows()
plot(x,y, ylim=c(0, 8), xlim=c(-0.4, 1.2), pch=19, cex.axis=0.8,
cex.lab=0.9, xlab="Male/Female expression ratio (log)",
ylab="Z/W expression ratio in females", las=1)
for (i in 1:9) {
up <- y[i] + sd[i]
low <- y[i] - sd[i]
segments(x[i], low, x[i], up)
segments(x[i]-0.02, up, x[i]+0.02, up)
segments(x[i]-0.02, low, x[i]+0.02, low)
}
My question is that how I can get rid of the two top and right axes and only keep the bottom and left axes?

In case you want to keep the box-like appearance instead of "free floating" axes, add bty ="l" (a lower case L) to your plot command.
Resulting in:
plot(x, y, ylim=c(0, 8), xlim=c(-0.4, 1.2), pch=19, cex.axis=0.8,
cex.lab=0.9, xlab="Male/Female expression ratio (log)",
ylab="Z/W expression ratio in females", las=1, bty = "l")
This will only remove the upper and the right frame bar.
See also ?par
Edit:
Looking at your graph and your calculations it seems, that you want to plot means for specific groups and then also show some standard deviation. In this case i would recommend looking into the boxplot() command which will do that for you using your original data.
See ?boxplot
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With