setwd("~/UCE/III/estadistica")
#Carga de Datos
datos <- read.csv("Conjunto_Datos_Minerales.csv", header = TRUE, sep = ";",
dec = ".")
#Extraer la variable
Litologia <- datos$hrock_type
#Tabla de distribución de frecuancia
TDFLitologia <- table(Litologia)
TablaLitologia<- as.data.frame(TDFLitologia)
#Elementos de la TDF
ni<-TablaLitologia$Freq
hi_porc<-(TablaLitologia$Freq/sum(ni))*100
#Verificar suma de frecuancias absolutas y relativas
sum(ni)
## [1] 304632
sum(hi_porc)
## [1] 100
#Cambiar el nombre de la columna
colnames(TablaLitologia) <- c("hrock_type", "ni")
#Agregar elementos a la tabla
TablaLitologia<- data.frame(TablaLitologia,hi_porc)
#GDF
#ni Global
barplot(TablaLitologia$ni, main = "Grafica No.1: Distribucion de cantidad de litologías",
xlab="Nombre de las litologías",
ylab="Cantidad",
col="blue"
,names.arg = abbreviate(TablaLitologia$hrock_type, minlength = 4),
las=2,
ylim = c(0,length(Litologia)),
cex.names = 0.5,
cex.axis = 0.5)

#ni Local
barplot(TablaLitologia$ni, main = "Grafica No.2: Distribucion de cantidad de nombres
de los sitios",
xlab="Nombre de los sitios",
ylab="Cantidad",
col="blue",
names.arg = abbreviate(TablaLitologia$hrock_type, minlength = 4),
las=2,
cex.names = 0.5,
cex.axis = 0.5)

#hi Global
barplot(TablaLitologia$hi_porc, main = "Grafica No.3: Distribucion de cantidad de litologías",
xlab="Nombre de las litologías",
ylab="Porcentaje",
col="blue",
names.arg = abbreviate(TablaLitologia$hrock_type, minlength = 4),
las=2,
ylim = c(0,100),
cex.names = 0.5,
cex.axis = 0.5)

#hi Local
barplot(TablaLitologia$hi_porc, main = "Grafica No.4: Distribucion de cantidad de litologías",
xlab="Nombre de las litologías",
ylab="Porcentaje",
col="blue",
names.arg = abbreviate(TablaLitologia$hrock_type, minlength = 4),
las=2,
cex.names = 0.5,
cex.axis = 0.5)

# Agrupar las 10 más comunes y sumar "Otras"
top_n <- 10
if (nrow(TablaLitologia) > top_n) {
TablaLitologia <- TablaLitologia[order(-TablaLitologia$ni), ]
top_litologias <- TablaLitologia[1:top_n, ]
otras_ni <- sum(TablaLitologia$ni[(top_n + 1):nrow(TablaLitologia)])
otras_hi_porc <- (otras_ni / sum(TablaLitologia$ni)) * 100
otras_fila <- data.frame(hrock_type = "Otras",
ni = otras_ni,
hi_porc = otras_hi_porc
)
TablaLitologia_top10 <- rbind(top_litologias, otras_fila)
} else {
TablaLitologia_top10 <- TablaLitologia
}
# Crear columna de nombres abreviados
TablaLitologia_top10$hrock_type_abbrev <- abbreviate(TablaLitologia_top10$hrock_type, minlength = 4)
print(TablaLitologia_top10)
## hrock_type ni hi_porc hrock_type_abbrev
## 1 235103 77.1760682
## 1226 Limestone 6931 2.2752042 Lmst
## 55 Andesite 3382 1.1101920 Ands
## 526 Diorite 3297 1.0822895 Dirt
## 958 Gravel 3265 1.0717850 Grvl
## 923 Granite 2871 0.9424486 Grnt
## 869 Gneiss 2639 0.8662911 Gnss
## 2257 Sandstone 2614 0.8580845 Snds
## 2330 Schist 2365 0.7763465 Schs
## 1914 Quartzite 2158 0.7083957 Qrtz
## 11 Otras 40007 13.1328948 Otrs
#Verificar suma de frecuencias absoluta y relativa
print(sum(TablaLitologia_top10$ni))
## [1] 304632
print(sum(TablaLitologia_top10$hi_porc))
## [1] 100
#GDF
#ni Global
barplot(TablaLitologia_top10$ni,
main = "Gráfica No.5: Distribución de cantidad de litologías (Top 10 y Otras)",
xlab = "Litologías",
ylab = "Cantidad",
col = "blue",
names.arg = TablaLitologia_top10$hrock_type_abbrev,
las = 2,
ylim = c(0,length(Litologia)),
cex.names = 0.5,
cex.axis = 0.5)

#ni Local
barplot(TablaLitologia_top10$ni,
main = "Gráfica No.6: Distribución de cantidad de litologías (Top 10 y Otras)",
xlab = "Litologías",
ylab = "Cantidad",
col = "blue",
names.arg = TablaLitologia_top10$hrock_type_abbrev,
las = 2,
cex.names = 0.5,
cex.axis = 0.5)

#hi Global
barplot(TablaLitologia_top10$hi_porc,
main = "Gráfica No.7: Distribución porcentual de litologías (Top 10 + Otras)",
xlab = "Litologías",
ylab = "Porcentaje",
col = "blue",
names.arg = TablaLitologia_top10$hrock_type_abbrev,
las = 2,
ylim = c(0, 100),
cex.names = 0.5,
cex.axis = 0.5)

barplot(TablaLitologia_top10$hi_porc,
main = "Gráfica No.8: Distribución porcentual de litologías (Top 10 + Otras)",
xlab = "Litologías",
ylab = "Porcentaje",
col = "blue",
names.arg = TablaLitologia_top10$hrock_type_abbrev,
las = 2,
cex.names = 0.5,
cex.axis = 0.5)

#Gráfica circular
# Ordenar la tabla por frecuencia relativa descendente
TablaLitologia_top10 <- TablaLitologia_top10[order(-TablaLitologia_top10$hi_porc), ]
# Crear escala de grises inversa a la frecuencia relativa
max_porc <- max(TablaLitologia_top10$hi_porc)
min_porc <- min(TablaLitologia_top10$hi_porc)
escala_gris <- 1 - ((TablaLitologia_top10$hi_porc - min_porc) / (max_porc - min_porc))
colores <- gray(escala_gris)
# Gráfico circular con escala de grises
pie(TablaLitologia_top10$hi_porc,
labels = rep("", nrow(TablaLitologia_top10)),
col = colores,
main = "Gráfica No.9: Distribución porcentual de litologías (Top 10 + Otras)",
radius = 1)
# Leyenda con porcentajes y nombres abreviados
legend("topright",
legend = paste(TablaLitologia_top10$hrock_type_abbrev, ": ",
round(TablaLitologia_top10$hi_porc, 1), "%"),
fill = colores,
cex = 0.7,
bty = "n",
xpd = TRUE)
