Histogram and Box & Whisker Plot Comparison
Loading the math board and drawing, please wait…
①This GeoGebra example dynamically demonstrates the simultaneous construction and comparison of a histogram and a box-and-whisker plot for the same dataset, allowing users to visually explore how data distribution is represented differently in these two chart types. ②Core mathematical concepts include data sorting, frequency distribution, mean, median, mode, quartiles (Q1, Q3), and the five-number summary (minimum, Q1, median, Q3, maximum) used in box plots. ③Construction highlights: using commands such as Sequence, Segment, Point, Sort, Histogram, BoxPlot, Mean, Median, Mode, Q1, Q3, CountIf, and If, along with sliders to adjust up to 16 data values and one additional comparison value, enabling interactive manipulation and real-time updates of both plots. ④This resource is ideal for middle or high school statistics lessons, self-study, or classroom demonstrations to illustrate data spread, central tendency, and the impact of outliers on different statistical visualizations.
GeoGebra Commands & Parameters
Sequence(dataSlidersTopSliderHeight - i, i, 0, dataSlidersTopSliderHeight, sliderVerticalSpacing) → sliderSpacingValuesSegment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 16, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 16]]), (dataMax, If[setData1 ∧ select1Data ≟ 16, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 16]])) → segData16Point(segData16) → dataPt16Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 15, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 15]]), (dataMax, If[setData1 ∧ select1Data ≟ 15, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 15]])) → segData15Point(segData15) → dataPt15Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 14, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 14]]), (dataMax, If[setData1 ∧ select1Data ≟ 14, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 14]])) → segData14Point(segData14) → dataPt14Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 13, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 13]]), (dataMax, If[setData1 ∧ select1Data ≟ 13, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 13]])) → segData13Point(segData13) → dataPt13Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 12, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 12]]), (dataMax, If[setData1 ∧ select1Data ≟ 12, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 12]])) → segData12Point(segData12) → dataPt12Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 11, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 11]]), (dataMax, If[setData1 ∧ select1Data ≟ 11, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 11]])) → segData11Point(segData11) → dataPt11Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 3, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 3]]), (dataMax, If[setData1 ∧ select1Data ≟ 3, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 3]])) → segData3Point(segData3) → dataPt3Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 2, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 2]]), (dataMax, If[setData1 ∧ select1Data ≟ 2, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 2]])) → segData2Point(segData2) → dataPt2Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 9, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 9]]), (dataMax, If[setData1 ∧ select1Data ≟ 9, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 9]])) → segData9Point(segData9) → dataPt9Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 8, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 8]]), (dataMax, If[setData1 ∧ select1Data ≟ 8, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 8]])) → segData8Point(segData8) → dataPt8Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 7, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 7]]), (dataMax, If[setData1 ∧ select1Data ≟ 7, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 7]])) → segData7Point(segData7) → dataPt7Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 6, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 6]]), (dataMax, If[setData1 ∧ select1Data ≟ 6, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 6]])) → segData6Point(segData6) → dataPt6Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 5, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 5]]), (dataMax, If[setData1 ∧ select1Data ≟ 5, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 5]])) → segData5Point(segData5) → dataPt5Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 4, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 4]]), (dataMax, If[setData1 ∧ select1Data ≟ 4, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 4]])) → segData4Point(segData4) → dataPt4Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 10, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 10]]), (dataMax, If[setData1 ∧ select1Data ≟ 10, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 10]])) → segData10Point(segData10) → dataPt10Segment((dataSliderLeftAlign, Element[sliderSpacingValues, 1] + If[setData1 ∧ select1Data ≟ 1, -2, 0]), (dataMax, Element[sliderSpacingValues, 1] + If[setData1 ∧ select1Data ≟ 1, -2, 0])) → segData1Point(segData1) → dataPt1Sort(RemoveUndefined[{If[d1 ≥ 0, d1], If[d2 ≥ 0, d2], If[d3 ≥ 0, d3], If[d4 ≥ 0, d4], If[d5 ≥ 0, d5], If[d6 ≥ 0, d6], If[d7 ≥ 0, d7], If[d8 ≥ 0, d8], If[d9 ≥ 0, d9], If[d10 ≥ 0, d10], If[d11 ≥ 0, d11], If[d12 ≥ 0, d12], If[d13 ≥ 0, d13], If[d14 ≥ 0, d14], If[d15 ≥ 0, d15], If[d16 ≥ 0, d16]}]) → dataListValidOnlySequence(i, i, 0, 100, classBoundaryIncrement) → histogramClassBoundariesHistogram(histogramClassBoundaries, dataListValidOnly, false) → histogram1Segment((0, Element[sliderSpacingValues, 1] - 2), (dataMax, Element[sliderSpacingValues, 1] - 2)) → segDataComparePoint(segDataCompare) → dataPtCompareSort(Append[dataListValidOnly, dCompare]) → dataListWithCompareHistogram(histogramClassBoundaries, dataListWithCompare, false) → histogramCompareMean(dataListValidOnly) → meanDataValidOnlyMedian(dataListValidOnly) → medianDataValidOnlyMode(dataListValidOnly) → modeDataValidOnlyMean(dataListWithCompare) → meanDataWithCompareMedian(dataListWithCompare) → medianDataWithCompareMode(dataListWithCompare) → modeDataWithCompareQ3(dataListValidOnly) → q3Q1(dataListValidOnly) → q1Vector(((q3 + q1) / 2 - 2, -2.25), (q1, -2.25)) → iqrRayLeftVector(((q3 + q1) / 2 + 2, -2.25), (q3, -2.25)) → iqrRayRightQ1(dataListWithCompare) → q1CompareQ3(dataListWithCompare) → q3CompareVector(((q3Compare + q1Compare) / 2 - 4, -4.25), (q1Compare, -4.25)) → iqrRayLeftCompareVector(((q3Compare + q1Compare) / 2 + 4, -4.25), (q3Compare, -4.25)) → iqrRayRightCompareBoxPlot(-1.5, 0.5, dataListValidOnly, If[outliersCk, true, false]) → boxPlot1BoxPlot(-3.5, 0.5, dataListWithCompare, If[outliersCk, true, false]) → boxPlotCompareCountIf(x ≥ 0, If[setDataCompare, dataListWithCompare, dataListValidOnly]) → countDataSegment((If[setData1, Element[dataListAll, select1Data], x(dataPtCompare)], dataSlidersTopSliderHeight - 2), (If[setData1, Element[dataListAll, select1Data], x(dataPtCompare)], -100)) → set1DataAlignLineIf(select1Data ≟ 1, x(dataPt1), If[select1Data ≟ 2, dataPt2, If[select1Data ≟ 3, dataPt3, If[select1Data ≟ 4, dataPt4, dataPt5]]]) → select1Pt
AI Drawing Prompt Reference
Create a histogram and box plot for a dataset and compare them. First, create a slider with 16 data points and adjust their positions. Then, draw a histogram based on these data points. Next, draw a box plot. Finally, add an additional data point for comparison and show its position on the histogram.
The prompt above was compiled from the original drawing commands and is for reference only.