Frequency Tables: Qualitative/Discrete Data
Loading the math board and drawing, please wait…
In collections
Frequency distribution
This example demonstrates how to use frequency tables to display qualitative or discrete data. Key math concepts include data categorization, frequency statistics, and discrete data analysis. GeoGebra commands and objects used in construction are RandomElement, Zip, Take, Join, Shuffle, Element, Sort, KeepIf, Length, Max, If, Sequence, Flatten. Suitable for high school statistics introductory teaching to understand data organization and visualization.
GeoGebra Commands & Parameters
RandomElement({0, 1, 2}) → dis16discusionMnimaZip("" + (dis16discusionMnima + t), t, {0, 1, 2, 3, 4}) → dis16Take(Shuffle[{"youtuber", "maestro", "veterinario", "militar", "cantante", "cocinero"}], 1, 2) → dis14segundasTake(Shuffle[{"médico", "informático", "bombero", "policía", "futbolista", "ingeniero"}], 1, 3) → dis14primerasJoin({dis14primeras, dis14segundas}) → dis14Take(Shuffle[{"tenis", "escalada", "pádel", "patinaje", "parkour", "bicicleta", "crossfit", "karate", "judo", "natación"}], 1, 2) → dis10segundosDeportesShuffle({"fútbol", "baloncesto", "running"}) → dis10primerosDeportes, {"fútbol", "running", "baloncesto"}Join({dis10primerosDeportes, dis10segundosDeportes}) → dis10Take(Shuffle[{"arroz", "cocido", "filetes", "pinchitos", "lentejas", "judías"}], 1, 2) → dis09segundasComidasTake(Shuffle[{"pizza", "hamburguesa", "espaguetti", "macarrones", "huevo frito"}], 1, 3) → dis09primerasComidasJoin({dis09primerasComidas, dis09segundasComidas}) → dis09Take(Shuffle[{"Matemáticas", "Música", "Lengua", "Sociales", "Tecnolog\!ía", "Inglés"}], 1, 3) → dis06segundosShuffle({"E.F.", "Plástica"}) → dis06primeros, {"Plástica", "E.F."}Join({dis06primeros, dis06segundos}) → dis06Element({dis01y02, dis01y02, dis03, dis04, dis05, dis06, dis07, dis08, dis09, dis10, dis11, dis12, dis13, dis14, dis15, dis16}, disNumEjercicio) → disCategoriasElement({dis01prob, dis02prob, dis03prob, dis04prob, dis05prob, dis06prob, dis07prob, dis08prob, dis09prob, dis10prob, dis11prob, dis12prob, dis13prob, dis14prob, dis15prob, dis16prob}, disNumEjercicio) → disProbabilidadesSort(DatosDesordenadosDiscretos) → DatosOrdenadosDiscretoKeepIf(d ∈ disDatos, d, disCategorias) → disCategoriasUsadasLength(disCategoriasUsadas) → TotalGruposDiscretoRandomElement({4, 5}) → BarrasElementosPorSeccionRandomElement({4, 4, 5, 5}) → BarrasNumGruposElement({T01valores, T02valores, T03valores, T04valores, T05valores, T06valores, T07valores, T08valores, T09valores, T10valores, T11valores, T12valores, T13valores, T14valores, T15valores, T16valores, T17valores, T18valores, T19valores, T20valores}, BarrasnumENUNCIADOELEGIDO) → TipoElegidoValoresElement(TipoElegidoValores, 3) → ObjetivoMedElement(TipoElegidoValores, 2) → ObjetivoQ1Element(TipoElegidoValores, 4) → ObjetivoQ3Element(TipoElegidoValores, 8) → unidadMinimaMax(TMinPosible, Element[TipoElegidoValores, 1]) → ObjetivoMinIf(BarrasConDecimales, 10, 1) → BarrasFactorSequence(Random[(ObjetivoQ1 * BarrasFactor), (ObjetivoMed * BarrasFactor)] / BarrasFactor, t, 1, BarrasElementosPorSeccion) → BarrasSec2, {25, 25, 27, 27, 27}Sequence(Random[(ObjetivoMed * BarrasFactor), (ObjetivoQ3 * BarrasFactor)] / BarrasFactor, t, 1, BarrasElementosPorSeccion) → BarrasSec3, {27, 28, 28, 28, 31}Element({5, 0.4, 2, 5, 4, 5, 5, 5, 5, 4, 3, 2, 2, 5, 5, 5, 5, 2, 0.5, 0.5}, BarrasnumENUNCIADOELEGIDO) → BarrasAmplitudIntervalosSequence(Random[(BarrasMin * BarrasFactor), (ObjetivoQ1 * BarrasFactor)] / BarrasFactor, t, 1, BarrasElementosPorSeccion) → BarrasSec1, {25, 25, 25, 25, 25}Sequence(Random[(BarrasFactor * (BarrasMin + (t * BarrasAmplitudIntervalos))), (BarrasFactor * (BarrasMin + ((t + 1) * BarrasAmplitudIntervalos))) - 0.5] / BarrasFactor, t, 0, BarrasNumGrupos - 1) → SecElementoIntervalo, {28, 32, 36, 40}Sequence(Random[(ObjetivoQ3 * BarrasFactor), ((BarrasMax * BarrasFactor) * 0.99)] / BarrasFactor, t, 1, BarrasElementosPorSeccion) → BarrasSec4, {38, 36, 40, 43, 39}Shuffle(Join[{BarrasSec1, BarrasSec2, BarrasSec3, BarrasSec4}]) → DatosPrevio, {25, 28, 25, 28, 27, 27, 31, 25, 28, 25, 27, 43, 25, 25, 27, 36, 25, 38, 39, 40}Zip("" + (t), t, DatosDesordenadosContinuos) → DatosDesordenadosContinuosTextoIf(estadisticaDiscreta, DatosDesordenadosDiscretos, DatosDesordenadosContinuosTexto) → DatosDesordenadosTextoSort(DatosDesordenadosContinuos) → DatosOrdenadosContinuosSort(datosBrutos) → datosOrdenadosContinuosZip("" + (t), t, datosOrdenadosContinuos) → DatosOrdenadosContinuosTextoIf(estadisticaDiscreta, DatosOrdenadosDiscreto, DatosOrdenadosContinuosTexto) → DatosOrdenadosTextoIf(muestraOrdenados, DatosOrdenadosTexto, DatosDesordenadosTexto) → DatosMostrarPreKeepIf(BarrasMin + (2 * BarrasAmplitudIntervalos) ≤ X ∧ X < BarrasMin + (3 * BarrasAmplitudIntervalos), X, DatosOrdenadosContinuos) → BarrasTabla3ContinuoKeepIf(BarrasMin + BarrasAmplitudIntervalos ≤ X ∧ X < BarrasMin + (2 * BarrasAmplitudIntervalos), X, DatosOrdenadosContinuos) → BarrasTabla2ContinuoKeepIf(BarrasMin ≤ X ∧ X < BarrasMin + BarrasAmplitudIntervalos, X, DatosOrdenadosContinuos) → BarrasTabla1ContinuoKeepIf(BarrasMin + (3 * BarrasAmplitudIntervalos) ≤ X ∧ X < BarrasMin + (4 * BarrasAmplitudIntervalos), X, DatosOrdenadosContinuos) → BarrasTabla4ContinuoKeepIf(BarrasMin + (4 * BarrasAmplitudIntervalos) ≤ X ∧ X ≤ BarrasMin + (5 * BarrasAmplitudIntervalos), X, DatosOrdenadosContinuos) → BarrasTabla5ContinuoIf(Length[BarrasTabla5Continuo] ≠ 0, 5, If[Length[BarrasTabla4Continuo] ≠ 0, 4, 3]) → TotalGruposContinuoIf(estadisticaDiscreta, disAbsolutas, solAbsolutasContinuas) → solAbsolutasFlatten(Zip[Sequence["\textcolor{" + (col) + "}", t, 1, sa], sa, solAbsolutas, col, {"#12BEC9", "#E497C1", "#C6D199", "brown", "blue", "#56C053", "#FFE505", "green", "blue", "brown"}]) → mascaraColorSolJoin({nombresHombre, nombresMujer}) → nombresFlatten(Sequence[{"\,\,", "\,\,", "\,\,", "\,\,", "\quad "}, t, 1, 6]) → secuenciaSeparadoraLength(DatosOrdenadosContinuos) → totalDatosContinuosIf(estadisticaDiscreta, discretaTotal, totalDatosContinuos) → totalDatosZip("" + (t) + (sep), sep, secuenciaSeparadora, t, DatosDesordenadosTexto) → txtdatosDesordenadosIf(corregido ∧ muestraOrdenados ∧ (¬cualitativoOrdinal), Zip[col + "{" + (d) + "}", d, DatosMostrarPre, col, mascaraColorSol], DatosMostrarPre) → DatosMostrarShuffle(If[rellenaTodosLosGrupos, Join[{Take[DatosPrevio, 1, Length[DatosPrevio] - BarrasNumGrupos], SecElementoIntervalo}], DatosPrevio]) → DatosDesordenados, {27, 43, 27, 28, 27, 32, 27, 25, 28, 25, 40, 25, 28, 31, 25, 36, 25, 25, 36, 28}Sort(DatosDesordenados) → DatosOrdenadosAntiguoKeepIf(BarrasMin + (4 * BarrasAmplitudIntervalos) ≤ X ∧ X ≤ BarrasMin + (5 * BarrasAmplitudIntervalos), X, DatosOrdenadosAntiguo) → BarrasTabla5KeepIf(BarrasMin + (3 * BarrasAmplitudIntervalos) ≤ X ∧ X < BarrasMin + (4 * BarrasAmplitudIntervalos), X, DatosOrdenadosAntiguo) → BarrasTabla4If(Length[BarrasTabla5] ≠ 0, 5, If[Length[BarrasTabla4] ≠ 0, 4, 3]) → BarrasTotalGruposElement({"la tabla de frecuencias", "el histograma", "el diagrama de sectores"}, tipoEjercicio) → txtTipoPreguntaElement({"Horas", "Horas", "Equipo", "Personas", "Opinión", "Asignatura", "Suspensos", "Hermanos", "Comida", "Deporte", "Transporte", "Horas", "Mascota", "Profesión", "Nº\,días", "Veces"}, disNumEjercicio) → disVariableMidpoint(PosH5, PosH6) → Val5Midpoint(PosH4, PosH5) → Val4Midpoint(PosH3, PosH4) → Val3Midpoint(PosH2, PosH3) → Val2Midpoint(PosH1, PosH2) → Val1Sequence(Val5 + (0, (longVertical * t)), t, 0, 20) → histVerticalMarcas5Point(histVerticalMarcas5) → PH5Sequence(Val4 + (0, (longVertical * t)), t, 0, 20) → histVerticalMarcas4Point(histVerticalMarcas4) → PH4Sequence(Val3 + (0, (longVertical * t)), t, 0, 20) → histVerticalMarcas3Point(histVerticalMarcas3) → PH3Sequence(Val2 + (0, (longVertical * t)), t, 0, 20) → histVerticalMarcas2Point(histVerticalMarcas2) → PH2Sequence(Val1 + (0, (longVertical * t)), t, 0, 20) → histVerticalMarcas1Point(histVerticalMarcas1) → PH1Sequence(Rotate[CentroSectores + (1.5, 0), (((t * 360)) / numeroSectores)°, CentroSectores], t, 0, numeroSectores) → SectoresPuntosPoint(SectoresPuntos) → Sec5Point(SectoresPuntos) → Sec4Point(SectoresPuntos) → Sec3Point(SectoresPuntos) → Sec2Point(SectoresPuntos) → Sec1Take({ac1, ac2, ac3, ac4, ac5}, 1, TotalGrupos) → userAcumTake({rel1, rel2, rel3, rel4, rel5, rel6}, 1, TotalGrupos + 1) → userRelTake({ab1, ab2, ab3, ab4, ab5, ab6}, 1, TotalGrupos + 1) → userAbsolutasTake({frecUser1, frecUser2, frecUser3, frecUser4, frecUser5}, 1, TotalGrupos) → respuestasHistogramaTake({Sec1, Sec2, Sec3, Sec4, Sec5}, 1, TotalGrupos) → SecPuntosZip(Element[Sort[SecPuntos, Zip[Angle[P, CentroSectores, Q], P, SecPuntos]], 2], Q, SecPuntos) → SecAnterioresSequence(Sum[Take[solAbsolutas, 1, t]], t, 1, TotalGrupos) → solAbsolutasAcumuladoZip(s ≟ r, s, Join[{solAbsolutas, {totalDatos}}], r, userAbsolutas) → correctasAbsolutasZip(s ≟ r, s, solAbsolutas, r, respuestasHistograma) → correctasHistogramasZip((100 * t / totalDatos), t, solAbsolutas) → solRelativasZip(abs(s - r) ≤ 0.9, s, Join[{solRelativas, {100}}], r, userRel) → correctasRelativasSequence(Sum[Take[solRelativas, 1, t]], t, 1, TotalGrupos) → solRelativasAcumuladoIf(acumuladaConAbsoluta ≟ 1, solAbsolutasAcumulado, solRelativasAcumulado) → solAcumuladoZip(abs(s - r) ≤ 0.9, s, solAcumulado, r, userAcum) → correctasAcumuladaZip(Rotate[P, Angle[P, CentroSectores, Q] / 2, CentroSectores], Q, SecPuntos, P, SecAnteriores) → SecMediosUserZip(Rotate[CentroSectores + (1.5, 0), (360 / 100 * s°), CentroSectores], s, solRelativasAcumulado) → solSectoresPuntosJoin({{CentroSectores + (1.5, 0)}, solSectoresPuntos}) → solSectoresPuntosAnterioresZip(Rotate[P, Angle[P, CentroSectores, Q] / 2, CentroSectores], Q, solSectoresPuntos, P, solSectoresPuntosAnteriores) → SecMediosSolIf(¬corregido, 1, If[solMiRespuesta, 2, 3]) → tablaMostrarIf(tablaMostrar ≟ 3, CrucesManual5, Element[solAbsolutas, 5]) → solAbs5Take({CrucesManual1, CrucesManual2, CrucesManual3, CrucesManual4, CrucesManual5}, 1, TotalGrupos) → userCrucesZip(s ≟ r, s, solAbsolutas, r, userCruces) → correctasCrucesIf(tablaMostrar ≟ 3, CrucesManual4, Element[solAbsolutas, 4]) → solAbs4If(tablaMostrar ≟ 3, CrucesManual3, Element[solAbsolutas, 3]) → solAbs3If(tablaMostrar ≟ 3, CrucesManual1, Element[solAbsolutas, 1]) → solAbs1If(tablaMostrar ≟ 3, CrucesManual2, Element[solAbsolutas, 2]) → solAbs2Random(3, 6) → totalEnGrupitosElement({{1}, {1, 1, 1, 2}, {1, 1, 1, 1, 1, 2, 2, 3}, {1, 1, 1, 2, 2, 3}}, totalEnGrupitos - 2) → maximoAtipicosIf(ponAtipicos, RandomElement[maximoAtipicos], 0) → totalAtipicosIf(atip1Derecha, ObjetivoQ3 + (unidadMinima * espacioQ3) + (unidadMinima * ceil(((1.5 * Random[11, 15] / 10) * IQRUnidades))), ObjetivoQ1 - (unidadMinima * espacioQ1) - (unidadMinima * ceil(((1.5 * Random[11, 15] / 10) * IQRUnidades)))) → atipico1If(atip2Derecha, ObjetivoQ3 + (unidadMinima * espacioQ3) + (unidadMinima * ceil(((1.5 * Random[11, 15] / 10) * IQRUnidades))), ObjetivoQ1 - (unidadMinima * espacioQ1) - (unidadMinima * ceil(((1.5 * Random[11, 15] / 10) * IQRUnidades)))) → atipico2If(atip3Derecha, ObjetivoQ3 + (unidadMinima * espacioQ3) + (unidadMinima * ceil(((1.5 * Random[11, 15] / 10) * IQRUnidades))), ObjetivoQ1 - (unidadMinima * espacioQ1) - (unidadMinima * ceil(((1.5 * Random[11, 15] / 10) * IQRUnidades)))) → atipico3Flatten(Join[{{If[atip1Derecha ∧ totalAtipicos ≥ 1, {atipico1}, {}]}, {If[atip2Derecha ∧ totalAtipicos ≥ 2, {atipico2}, {}]}, {If[atip3Derecha ∧ totalAtipicos ≥ 3, {atipico3}, {}]}}]) → datosAtipicosDerFlatten(Join[{{If[(¬atip1Derecha) ∧ totalAtipicos ≥ 1, {atipico1}, {}]}, {If[(¬atip2Derecha) ∧ totalAtipicos ≥ 2, {atipico2}, {}]}, {If[(¬atip3Derecha) ∧ totalAtipicos ≥ 3, {atipico3}, {}]}}]) → datosAtipicosIzqMin({5, floor((anchoUnidades2 * porcentajeShift)), floor((anchoUnidades3 * porcentajeShift))}) → shift2If(imparMediana, 0, Random[0, shift2] + espacioQ2) → shiftUsado2If(imparMediana, {ObjetivoMed}, {datoRellenar2_1, datoRellenar2_2}) → datosIncluirParaMedianaMin(Element[TipoElegidoValores, 5], TMaxPosible) → ObjetivoMaxMin({5, floor((anchoUnidades4 * porcentajeShift)), floor((anchoUnidades3 * porcentajeShift))}) → shift3Min({5, floor((anchoUnidades1 * porcentajeShift)), floor((anchoUnidades2 * porcentajeShift))}) → shift1If(imparCuartiles, 0, Random[0, shift1] + espacioQ1) → shiftUsado1If(imparCuartiles, {ObjetivoQ1}, {datoRellenar1_1, datoRellenar1_2}) → datosIncluirParaCuartiles1If(imparCuartiles, 0, Random[0, shift3] + espacioQ3) → shiftUsado3If(imparCuartiles, {ObjetivoQ3}, {datoRellenar3_1, datoRellenar3_2}) → datosIncluirParaCuartiles3Sequence(ObjetivoMax - (unidadMinima * Random[0, anchoUnidades4 - shiftUsado3]), t, 1, totalEnGrupitos - 1 - (¬imparCuartiles) - restarDerecha) → datosTramo4_0, {35}Sequence(salidaTramo3 + (unidadMinima * Random[0, Min[anchoUnidades3 - shiftUsado2, anchoUnidades3 - shiftUsado3]]), t, 1, numDatos3) → datosTramo3, {28}Sequence(ObjetivoMin + (unidadMinima * Random[0, anchoUnidades1 - shiftUsado1]), t, 1, numDatos1) → datosTramo1_0, {23}Join({datosAtipicosIzq, {ObjetivoMin}, datosTramo1_0}) → datosTramo1Join({datosTramo4_0, {ObjetivoMax}, datosAtipicosDer}) → datosTramo4Zip("\red{\underline{\overline{" + (t) + "}}}\,\,", t, datosAtipicosDer) → txtDatosAtipicosDerZip("\red{\underline{\overline{" + (t) + "}}}\,\,", t, datosAtipicosIzq) → txtDatosAtipicosIzqZip("\orange{" + (t) + "}\,\,", t, datosTramo4_0) → txtdatosTramo4_0Join({txtdatosTramo4_0, {"\bold{\orange{" + ObjetivoMax + "}}\,\,"}, txtDatosAtipicosDer}) → txtdatosTramo4If(imparCuartiles, {"\bold{\crimson{|\underline{\overline{" + ObjetivoQ3 + "}}|}}\,\,"}, {"\crimson{" + datoRellenar3_1 + "}\,\brown{{\stackrel{\small{" + ObjetivoQ3 + "}}{✂}}}\,", "\orange{" + datoRellenar3_2 + "}\,\,"}) → txtdatosIncluirParaCuartiles3Zip("\orange{" + (t) + "}\,\,", t, datosTramo1_0) → txtdatosTramo1_0Join({txtDatosAtipicosIzq, {"\bold{\orange{" + ObjetivoMin + "}}\,\,"}, txtdatosTramo1_0}) → txtdatosTramo1If(imparCuartiles, {"\bold{\crimson{|\underline{\overline{" + ObjetivoQ1 + "}}|}}\,\,"}, {"\orange{" + datoRellenar1_1 + "}\,\brown{{\stackrel{\small{" + ObjetivoQ1 + "}}{✂}}}\,", "\crimson{" + datoRellenar1_2 + "}\,\,"}) → txtdatosIncluirParaCuartiles1If(imparMediana, {"{\bold{\crimson{|\underline{\overline{" + ObjetivoMed + "}}|}}}\,\,"}, {"\crimson{" + datoRellenar2_1 + "}\,\brown{{\stackrel{\small{" + ObjetivoMed + "}}{✂}}}\,", "\crimson{" + datoRellenar2_2 + "}\,\,"}) → txtdatosIncluirParaMedianaZip("" + (If[corregido, col, "\blue"]) + "{" + (t) + "}" + (sep), sep, secuenciaSeparadora, t, DatosOrdenadosTexto, col, mascaraColorSol) → txtListaDatosOrdenadosZip("\crimson{" + (t) + "}\,\,", t, datosTramo3) → txtdatosTramo3If(imparCuartiles, {ObjetivoQ1, ObjetivoQ3}, {datoRellenar1_1, datoRellenar1_2, datoRellenar3_1, datoRellenar3_2}) → datosIncluirParaCuartilesJoin({datosIncluirParaCuartiles, datosIncluirParaMediana}) → datosIncluirLine(P21, P22) → r2Line(P11, P12) → r1Intersect(ejeSuperior, r1) → S1Intersect(ejeSuperior, r2) → S2Line(P31, P32) → r3Line(P41, P42) → r4Line(P51, P52) → r5Intersect(ejeSuperior, r3) → S3Intersect(ejeSuperior, r4) → S4Intersect(ejeSuperior, r5) → S5Sort({x(S1), x(S2), x(S3), x(S4), x(S5)}) → listaValoresXElement(listaValoresX, 1) → xMinElement(listaValoresX, 5) → xMaxElement(listaValoresX, 3) → xMedElement(listaValoresX, 2) → xQ1Element(listaValoresX, 4) → xQ3Segment((xMin, posMedia), (xQ1, posMedia)) → sBigote1Segment((xMax, posMedia), (xQ3, posMedia)) → sBigote2Segment((xMin, posBaja), (xMin, posAlta)) → s1Segment((xMax, posBaja), (xMax, posAlta)) → s5Segment((xQ1, posBaja), (xQ1, posAlta)) → s2Segment((xMed, posBaja), (xMed, posAlta)) → s3Segment((xQ3, posBaja), (xQ3, posAlta)) → s4Segment((xQ1, posBaja), (xQ3, posBaja)) → sCaja1Segment((xQ1, posAlta), (xQ3, posAlta)) → sCaja2Line((0, 0), (10, 0)) → lineaBaseElement(TipoElegidoValores, 6) → minEjeElement(TipoElegidoValores, 7) → maxEjeSequence(((t * 12 / 4), 0), t, 0, 4) → listaCirculosTextfield(listaOutliersUser) → CasillaAtipicosZip((valorGrafico(t), posMedia), t, listaOutliersUser) → listaOutliersGraficoIf(imparCuartiles, {"\bold{\crimson{" + ObjetivoQ1 + "}}\,\,"}, {"\crimson{" + datoRellenar1_1 + "}\,\,", "\crimson{" + datoRellenar1_2 + "}\,\,"}) → lista1Length(enunciados) → totalEnunciadosElement(TipoElegidoValores, 1) → aElement(TipoElegidoValores, 1) → TMinSegment((valorGrafico(ObjetivoMin), posMedia), (valorGrafico(ObjetivoQ1), posMedia)) → solsBigote1Segment((valorGrafico(ObjetivoMax), posMedia), (valorGrafico(ObjetivoQ3), posMedia)) → solsBigote2Segment((valorGrafico(ObjetivoMin), posBaja), (valorGrafico(ObjetivoMin), posAlta)) → sols1Segment((valorGrafico(ObjetivoMax), posBaja), (valorGrafico(ObjetivoMax), posAlta)) → sols5Segment((valorGrafico(ObjetivoQ1), posBaja), (valorGrafico(ObjetivoQ1), posAlta)) → sols2Segment((valorGrafico(ObjetivoQ3), posBaja), (valorGrafico(ObjetivoQ3), posAlta)) → sols4Segment((valorGrafico(ObjetivoQ1), posBaja), (valorGrafico(ObjetivoQ3), posBaja)) → solsCaja1Segment((valorGrafico(ObjetivoQ1), posAlta), (valorGrafico(ObjetivoQ3), posAlta)) → solsCaja2Segment((valorGrafico(ObjetivoMed), posBaja), (valorGrafico(ObjetivoMed), posAlta)) → sols3If(corregido, {{txtUnidades + "^{\phantom{|}}", If[muestraOrdenados, txtDatosOrdenados, txtDatos] + "_{\phantom{|}}"}}, {{If[muestraOrdenados, "Ordenados", "\bold{" + txtUnidades + "}"], "^{\phantom{|}}" + (If[muestraOrdenados, txtDatosOrdenados, txtDatos]) + "_{\phantom{|}}"}}) → listaDatosMostradosLine(A, B) → fLine(A, B) → separador1Sequence(Segment[((t * 12 / 60), -0.05), ((t * 12 / 60), 0.05)], t, -10, 80) → listaGradacionesJoin({datosAtipicosDer, datosAtipicosIzq}) → datosAtipicosValoresZip((valorGrafico(t), posMedia), t, datosAtipicosValores) → datosAtipicosGraficoTableText(listaDatosMostrados, "lch|_") → tablaConDatosJoin({{"\brown{Relativa\,{\scriptsize{(%)}}\,}"}, Zip["" + (If[abs(s - u) ≤ 0.9, "\green", "\red"]) + "{" + (s) + "{\small{%}}}", u, userRel, s, Join[{solRelativas, {100}}]]}) → BarrasColumnaRelativaSum(Sequence["0", t, 1, TotalGrupos - 1]) → TotalCerosSegment((x(PosXb1), y(OrigenX)) - (0.5, 0.3), (x(PosXb1) + (TotalGrupos * despX), y(OrigenX)) - (0.3, 0.3)) → segmentoXJoin({{"\brown{Acumulada}\," + txtTipoAcumulada}, Zip["" + (If[abs(s - u) ≤ 0.9, "\green", "\red"]) + "{" + (s) + "}", u, userAcum, s, solAcumulado], {""}}) → BarrasColumnaAcumuladaTextfield(txtab1) → Entradaab1Textfield(txtab2) → Entradaab2Textfield(txtab3) → Entradaab3Textfield(txtab4) → Entradaab4Textfield(txtab5) → Entradaab5Textfield(txtab6) → Entradaab6Textfield(txtrel1) → Entradarel1Textfield(txtrel2) → Entradarel2Textfield(txtrel3) → Entradarel3Textfield(txtrel4) → Entradarel4Textfield(txtrel5) → Entradarel5Textfield(txtrel6) → Entradarel6Textfield(txtac1) → Entradaac1Textfield(txtac2) → Entradaac2Textfield(txtac3) → Entradaac3Textfield(txtac4) → Entradaac4Textfield(txtac5) → Entradaac5Join({{"\brown{Absoluta}"}, Zip["" + (If[s ≟ u, "\green", "\red"]) + "{" + (u) + "}", u, userAbsolutas, s, Join[{solAbsolutas, {totalDatos}}]]}) → BarrasColumnaAbsolutasUserJoin({{"\brown{Relativa\,{\scriptsize{(%)}}\,}"}, Zip["" + (If[abs(s - u) ≤ 0.9, "\green", "\red"]) + "{" + (u) + "{\small{%}}}", u, userRel, s, Join[{solRelativas, {100}}]]}) → BarrasColumnaRelativaUserSegment(PosH0, PosHFin) → histHorizontalSegment(PosH0, PosH0 + (0, (longVertical * 15))) → histVerticalSequence(PosH0 + (0, (longVertical * t)), t, 1, 15) → histVerticalMarcasPolygon({PosH1, PosH2, (x(PosH2), y(PH1)), (x(PosH1), y(PH1))}) → rec1Polygon({PosH2, PosH3, (x(PosH3), y(PH2)), (x(PosH2), y(PH2))}) → rec2Polygon({PosH3, PosH4, (x(PosH4), y(PH3)), (x(PosH3), y(PH3))}) → rec3Polygon({PosH4, PosH5, (x(PosH5), y(PH4)), (x(PosH4), y(PH4))}) → rec4Polygon({PosH5, PosH6, (x(PosH6), y(PH5)), (x(PosH5), y(PH5))}) → rec5PolyLine(Take[{PH1, PH2, PH3, PH4, PH5}, 1, TotalGrupos]) → polFrecuenciasPolyLine(Zip[Midpoint[(x(eDer), y(PosH1) + (s * longVertical)), (x(eIz), y(PosH1) + (s * longVertical))], s, solAbsolutas, eIz, Take[{PosH1, PosH2, PosH3, PosH4, PosH5}, 1, TotalGrupos], eDer, {PosH2, PosH3, PosH4, PosH5, PosH6}]) → PolFrecSolucionElement(Sort[SecPuntos, Zip[Angle[P, CentroSectores, Sec1], P, SecPuntos]], 2) → Anterior1CircleSector(CentroSectores, Element[SecAnteriores, 1], Sec1) → Sector1CircleSector(CentroSectores, Element[SecAnteriores, 2], Sec2) → Sector2CircleSector(CentroSectores, Element[SecAnteriores, 3], Sec3) → Sector3CircleSector(CentroSectores, Element[SecAnteriores, 4], Sec4) → Sector4If(solMiRespuesta ∧ corregido, SecMediosSol, SecMediosUser) → SecMediosCircleSector(CentroSectores, Element[SecAnteriores, 5], Sec5) → Sector5Sequence(If[t ≤ TotalGrupos, Element[SecMedios, t], CentroSectores], t, 1, 5) → SecPosCartelSequence(If[t ≤ TotalGrupos, Element[SecMedios, t], CentroSectores], t, 1, 5) → secPosCartelCircleSector(CentroSectores, Element[solSectoresPuntosAnteriores, 1], Element[solSectoresPuntos, 1]) → solSectores1CircleSector(CentroSectores, Element[solSectoresPuntosAnteriores, 2], Element[solSectoresPuntos, 2]) → solSectores2CircleSector(CentroSectores, Element[solSectoresPuntosAnteriores, 3], Element[solSectoresPuntos, 3]) → solSectores3CircleSector(CentroSectores, Element[solSectoresPuntosAnteriores, 4], Element[solSectoresPuntos, 4]) → solSectores4CircleSector(CentroSectores, Element[solSectoresPuntosAnteriores, 5], Element[solSectoresPuntos, 5]) → solSectores5Polygon({PosH1_1, PosH1_2, (x(PosH1_2), y(PH1)), (x(PosH1_1), y(PH1))}) → rec1discretaPolygon({PosH2_1, PosH2_2, (x(PosH2_2), y(PH2)), (x(PosH2_1), y(PH2))}) → rec2discretaPolygon({PosH3_1, PosH3_2, (x(PosH3_2), y(PH3)), (x(PosH3_1), y(PH3))}) → rec3discretaPolygon({PosH4_1, PosH4_2, (x(PosH4_2), y(PH4)), (x(PosH4_1), y(PH4))}) → rec4discretaPolygon({PosH5_1, PosH5_2, (x(PosH5_2), y(PH5)), (x(PosH5_1), y(PH5))}) → rec5discretaKeepIf(BarrasMin ≤ X ∧ X < BarrasMin + BarrasAmplitudIntervalos, X, DatosOrdenadosAntiguo) → BarrasTabla1KeepIf(BarrasMin + BarrasAmplitudIntervalos ≤ X ∧ X < BarrasMin + (2 * BarrasAmplitudIntervalos), X, DatosOrdenadosAntiguo) → BarrasTabla2If(estadisticaDiscreta, NombreIntervalosDiscretos, NombreIntervalosContinuos) → NombreIntervalosKeepIf(BarrasMin + (2 * BarrasAmplitudIntervalos) ≤ X ∧ X < BarrasMin + (3 * BarrasAmplitudIntervalos), X, DatosOrdenadosAntiguo) → BarrasTabla3Join({{"\brown{" + txtUnidades + "}"}, NombreIntervalos, {"\phantom{XX}\crimson{Total\!:}\phantom{XX\left[\right)\!\!\!\!]}"}}) → BarrasTextosIntervalosJoin({{"\brown{Absoluta}"}, Zip["" + (If[s ≟ u, "\green", "\red"]) + "{" + (s) + "}", u, userAbsolutas, s, Join[{solAbsolutas, {totalDatos}}]]}) → BarrasColumnaAbsolutasZip(Angle[P, CentroSectores, Q], Q, SecPuntos, P, SecAnteriores) → SecAngulosZip((100 / 360 * ang / °), ang, SecAngulos) → SecPorcentajesUserTableText({{"" + disVariable, DatosDosColumnas}}, "h_|") → cualitativostxtIf(solMiRespuesta ∧ corregido, solRelativas, SecPorcentajesUser) → SecPorcentajesJoin({{"\brown{Acumulada}\," + txtTipoAcumulada}, Zip["" + (If[abs(s - u) ≤ 0.9, "\green", "\red"]) + "{" + (u) + "}", u, userAcum, s, solAcumulado], {""}}) → BarrasColumnaAcumuladaUserZip(Polygon[P], P, recSolucionContinuaPtos) → recSolucionContinuaCircle(CentroSectores, 1.5) → CircSectoresMin(tiposHechos) → menorTipoHechoKeepIf(Element[tiposHechos, n] ≤ menorTipoHecho, n, 1…If[usaDiscretaYContinua, 6, 3]) → tiposPosiblesZip(Length[KeepIf[t ≟ d, d, disDatos]], t, disCategoriasUsadas) → disAbsolutasDinamicoShuffle(If[rellenaTodosLosGrupos, Join[{Take[DatosPrevio, 1, Length[DatosPrevio] - BarrasNumGrupos], SecElementoIntervalo}], DatosPrevio]) → DatosDesordenadosContinuosDinamico, {28, 40, 36, 36, 25, 25, 27, 25, 27, 25, 27, 43, 25, 28, 27, 28, 28, 25, 31, 32}Join({Take[disCategorias, 1, 4], Sequence[Element[disCategorias, RandomElement[disProbabilidades]], t, 1, discretaTotal - 4]}) → disDatosDinamicoTake({Length[BarrasTabla1Continuo], Length[BarrasTabla2Continuo], Length[BarrasTabla3Continuo], Length[BarrasTabla4Continuo], Length[BarrasTabla5Continuo]}, 1, TotalGrupos) → solAbsolutasContinuasDinamicoZip("\phantom{[)}" + (n), n, disCategoriasUsadas) → NombreIntervalosDiscretosDinamicoSequence("\left[" + (BarrasMin + (t * BarrasAmplitudIntervalos)) + "," + (BarrasMin + ((t + 1) * BarrasAmplitudIntervalos)) + "\right" + (If[BarrasCerrarConCorchete ∧ t ≟ BarrasTotalGrupos - 1, "]", ")"]), t, 0, BarrasTotalGrupos - 1) → NombreIntervalosContinuosDinamicoZip(Polygon[P], P, recSolucionDiscretaPtos) → recSolucionDiscreta