suicide = read.table("baze//suicide.txt")
podaci = suicide$V1
n = length(podaci)

par(mfrow = c(2, 2))
hist(podaci, probability = T, main = "Ugradjena funkcija")

histogram = function(x, metod) {
  if (metod == "Sturdzis") {
    m = ceiling(1 + log2(n))
    R = diff(range(x))
    h = R/m
    krajevi = min(x) + h*0:m
    return(hist(x, breaks = krajevi, probability = T, main = "Sturdzisovo pravilo"))
  }
  else if (metod == "Skot") {
    h = 3.5*sd(x)*n^(-1/3)
    R = diff(range(x))
    m = ceiling(R/h)
    krajevi = min(x) + h*0:m
    return(hist(x, breaks = krajevi, probability = T, main = "Skotovo pravilo"))
  }
  else if (metod == "FD") {
    h = 2*IQR(x)*n^(-1/3)
    R = diff(range(x))
    m = ceiling(R/h)
    krajevi = min(x) + h*0:m
    return(hist(x, breaks = krajevi, probability = T, main = "Fridman-Dijakonisovo pravilo"))
  }
}

histogram(podaci,"Sturdzis")
histogram(podaci,"Skot")
histogram(podaci,"FD")

# ako malo pomerimo pocetnu tacku
par(mfrow = c(2, 1))
podaci1 = sort(podaci)
podaci1[1] = podaci1[1] - 40
histogram(podaci, "FD")
histogram(podaci1, "FD")
par(mfrow = c(1, 1))