Dear Sir/Madam,
It is possible to make grouped bar plots via barplot. But I want to add a
break in y axis for data that largely differs. However, this seems
complicated. Although gap.barplot may add a break in y asis, but the bars
are not grouped as I wanted. Could you help me with this problem?
I have attach the code as below and thank you very much indeed for your
kind help.
Kind regards,
Wei
x1=c(3,5,6,9,375,190);
x1
x2=c(2,2,3,30,46,60);
x2
data=rbind(x1,x2);
data
colnames(data)=c("Pig","Layer","Broiler","Dairy","Beef","Sheep")
rownames(data)=c("1980","2010")
data
# plot grouped bar by using barplot
barplot(data,
beside=T,
ylab="Number of animal",
#cex.names=0.8,
#las=2,
col=c("darkblue","red")
)
# Since there are large differences in numbers, so I want to add a break
between 200 to 340 as below:
data_T=t(data);
data_T
#install.packages("reshape")
library(reshape)
mdata <- melt(data_T, id=c("1980","2010"));
mdata
colnames(mdata)=c("Animal","Year",'value');
mdata
gap.barplot(mdata$value,
gap=c(200,340),
xlab="Animal",
ytics=c(0,50,100,150,200,300,350,400),
ylab="Number of animal",
xaxlab=mdata$Animal,
xaxt="n" # This is esentiall to remove everything from x
axis
(e.g. a clean x axis))
# then define a axis using the following
axis(side = 1, at = seq_along(mdata$Animal),mdata$Animal,tick = FALSE)
abline(h=seq(200,205,.001), col="white") # hiding vertical lines
axis.break(axis=2,breakpos=202.5,style="slash") # break the left Y
axis
# But this is not exactly what I want because the bars (in gap.barplot) are
not grouped as previous barplot figures :(
#Then my questions is how to make a broken y axis in grouped barplot
figures?
# In another words, how to combine the function of barplot and gap.barplot?
#Thanks a lot for your kind help!
[[alternative HTML version deleted]]