podaci = suicide$V1
n = length(podaci)

par(mfrow = c(2, 2))
hist(podaci, probability = T, main = "Ugradjena funkcija")

histogram = function(x, x0, pravilo) {
  R = max(x) - min(x)
  
  if (pravilo == "Sturges") {
    m = ceiling(1 + log2(n)) 
    h = R / m
  }
  else if (pravilo == "Scott") {
    h = 3.5 * sd(x) * n^(-1/3)
    m = ceiling(R / h)
  }
  else if (pravilo == "FD") {
    h = 2 * IQR(x) * n^(-1/3)
    m = ceiling(R / h)
  }
  
  krajevi = x0 + h * 0:m
  return(hist(x, breaks = krajevi, probability = T, main = pravilo))
}

histogram(podaci, min(podaci), "Sturges")
histogram(podaci, min(podaci), "Scott")
histogram(podaci, min(podaci), "FD")

# ako pomerimo pocetnu tacku
par(mfrow = c(1, 2))
histogram(podaci, min(podaci), "FD")
histogram(podaci, min(podaci) - 20, "FD")

histogram(podaci, min(podaci), "Scott")
histogram(podaci, min(podaci) - 40, "Scott")

