Use breaks and position="dodge"
eg:
ggplot(mtcars,aes(x=hp))+geom_histogram(breaks=c(50,100,200,350),position="dodge")
You have no data, but for your example:
p <- ggplot(TotCalc, aes(x=x,y=100*(..count../sum(..count..)))) + xlab(xlabel) + ylab(ylabel) + geom_histogram(colour = "darkblue", fill = "white", breaks=cumsum(c(180,100,110,160,200,250,1000,3000)), position="dodge")
James source share