21

If you look at the graph below (y axis), you will notice that the scale is from 0 to 0.20. I have other histograms where the range is from 0 to 0.4. I want to make all of them consistent from 0 to 1 and display the y axis from 0 to 1.

conne <- file("C:Aisdefined.bin","rb")
sd    <- readBin(conne, numeric(), size=4,  n=1440*720, signed=TRUE)
y     <- t(matrix((data=sd), ncol=1440, nrow=720))
r     <- raster(y)
f     <- hist(y, breaks=10,main="sm")

f$counts <- f$counts/sum(f$counts)
dat <- data.frame(counts= f$counts,breaks = f$mids)
ggplot(dat, aes(x = breaks, y = counts, fill =counts)) + 
   geom_bar(stat = "identity",alpha = 0.8) +
   xlab("Pearson correlation")+ ylab("Frequency") + 
   scale_x_continuous(breaks = seq(-1,1,0.250), labels = seq(-1,1,0.250)) +
   ggtitle("2011") + theme(axis.title.x = element_text(size = 20)) + 
   theme(axis.title.y = element_text(size = 20)) + 
   theme(text = element_text(size=20), 
   axis.text.x = element_text(angle = 90, vjust=1,colour="black"), 
   axis.text.y = element_text(colour="black")) + 
   theme(plot.title = element_text(size = rel(2.5))) + 
   scale_fill_gradientn(colours = "black")
Barry
  • 739
  • 1
  • 8
  • 29

2 Answers2

32

Just add:

+ coord_cartesian(ylim=c(0,1))
James
  • 65,548
  • 14
  • 155
  • 193
16

Try this:

scale_y_continuous( limits = c(0,1), expand = c(0,0) )
Simon O'Hanlon
  • 58,647
  • 14
  • 142
  • 184
  • 2
    Beware: Setting limits on a scale may exclude data. – James Feb 19 '13 at 15:41
  • @James indeed - I missed that the OP only wanted the y axis. My mistake. It's still valid to use `scale_y_continuous` in this case because its a histogram so values will be bounded between 0 and 1. – Simon O'Hanlon Feb 19 '13 at 15:46