Biggiez Biggiez - 2 months ago 7
R Question

My interval in the y-axis changes

I need help with this issue.
When I plot out this exponential distribution of this code:

x<-runif(100)
y<--log(1-x)
hist(y)


I get this plot:
enter image description here

But when I add the exponential curve on my histogram, the interval for the y-values seems to be divided with 100?

The only difference in the code are these 2 new lines:

hist(y,prob=TRUE)
curve(dexp(x, rate = 0.8), col = 2, lty = 2, lwd = 2, add = TRUE)


enter image description here

Im a beginnner to R, so would appreciate if someone could help me out with this issue. I want the second plot to also have the same interval as the first plot.

I think the interval for the first plot is the correcct one, since in the first line of my code we generate 100 values x. So the sum of the y-values of our "bars" should be equal to 100, right? Or am I thinking wrong?

Answer

You could draw a blank density histogram on top of the regular one and consequently add the curve:

hist(y, border = "black")
par(new = TRUE) # allows us to draw new plot on top of first one
hist(y, probability = TRUE, 
     axes = FALSE, border = "white", 
     xlab = "", ylab = "", main = "")
curve(dexp(x, rate = 0.8), 
      col = 2, lty = 2, 
      lwd = 2, add = TRUE)

enter image description here

Note that the plot looks different because of the randomness in runif().