Histogram and Box & Whisker Plot Comparison

Histogram and Box & Whisker Plot Comparison
Loading the math board and drawing, please wait…
2014-05-19 00:05
①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

  1. Sequence(dataSlidersTopSliderHeight - i, i, 0, dataSlidersTopSliderHeight, sliderVerticalSpacing) → sliderSpacingValues
  2. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 16, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 16]]), (dataMax, If[setData1 ∧ select1Data ≟ 16, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 16]])) → segData16
  3. Point(segData16) → dataPt16
  4. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 15, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 15]]), (dataMax, If[setData1 ∧ select1Data ≟ 15, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 15]])) → segData15
  5. Point(segData15) → dataPt15
  6. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 14, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 14]]), (dataMax, If[setData1 ∧ select1Data ≟ 14, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 14]])) → segData14
  7. Point(segData14) → dataPt14
  8. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 13, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 13]]), (dataMax, If[setData1 ∧ select1Data ≟ 13, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 13]])) → segData13
  9. Point(segData13) → dataPt13
  10. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 12, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 12]]), (dataMax, If[setData1 ∧ select1Data ≟ 12, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 12]])) → segData12
  11. Point(segData12) → dataPt12
  12. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 11, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 11]]), (dataMax, If[setData1 ∧ select1Data ≟ 11, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 11]])) → segData11
  13. Point(segData11) → dataPt11
  14. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 3, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 3]]), (dataMax, If[setData1 ∧ select1Data ≟ 3, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 3]])) → segData3
  15. Point(segData3) → dataPt3
  16. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 2, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 2]]), (dataMax, If[setData1 ∧ select1Data ≟ 2, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 2]])) → segData2
  17. Point(segData2) → dataPt2
  18. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 9, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 9]]), (dataMax, If[setData1 ∧ select1Data ≟ 9, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 9]])) → segData9
  19. Point(segData9) → dataPt9
  20. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 8, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 8]]), (dataMax, If[setData1 ∧ select1Data ≟ 8, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 8]])) → segData8
  21. Point(segData8) → dataPt8
  22. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 7, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 7]]), (dataMax, If[setData1 ∧ select1Data ≟ 7, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 7]])) → segData7
  23. Point(segData7) → dataPt7
  24. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 6, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 6]]), (dataMax, If[setData1 ∧ select1Data ≟ 6, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 6]])) → segData6
  25. Point(segData6) → dataPt6
  26. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 5, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 5]]), (dataMax, If[setData1 ∧ select1Data ≟ 5, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 5]])) → segData5
  27. Point(segData5) → dataPt5
  28. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 4, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 4]]), (dataMax, If[setData1 ∧ select1Data ≟ 4, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 4]])) → segData4
  29. Point(segData4) → dataPt4
  30. Segment((dataSliderLeftAlign, If[setData1 ∧ select1Data ≟ 10, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 10]]), (dataMax, If[setData1 ∧ select1Data ≟ 10, dataSlidersTopSliderHeight - 2, Element[sliderSpacingValues, 10]])) → segData10
  31. Point(segData10) → dataPt10
  32. Segment((dataSliderLeftAlign, Element[sliderSpacingValues, 1] + If[setData1 ∧ select1Data ≟ 1, -2, 0]), (dataMax, Element[sliderSpacingValues, 1] + If[setData1 ∧ select1Data ≟ 1, -2, 0])) → segData1
  33. Point(segData1) → dataPt1
  34. Sort(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]}]) → dataListValidOnly
  35. Sequence(i, i, 0, 100, classBoundaryIncrement) → histogramClassBoundaries
  36. Histogram(histogramClassBoundaries, dataListValidOnly, false) → histogram1
  37. Segment((0, Element[sliderSpacingValues, 1] - 2), (dataMax, Element[sliderSpacingValues, 1] - 2)) → segDataCompare
  38. Point(segDataCompare) → dataPtCompare
  39. Sort(Append[dataListValidOnly, dCompare]) → dataListWithCompare
  40. Histogram(histogramClassBoundaries, dataListWithCompare, false) → histogramCompare
  41. Mean(dataListValidOnly) → meanDataValidOnly
  42. Median(dataListValidOnly) → medianDataValidOnly
  43. Mode(dataListValidOnly) → modeDataValidOnly
  44. Mean(dataListWithCompare) → meanDataWithCompare
  45. Median(dataListWithCompare) → medianDataWithCompare
  46. Mode(dataListWithCompare) → modeDataWithCompare
  47. Q3(dataListValidOnly) → q3
  48. Q1(dataListValidOnly) → q1
  49. Vector(((q3 + q1) / 2 - 2, -2.25), (q1, -2.25)) → iqrRayLeft
  50. Vector(((q3 + q1) / 2 + 2, -2.25), (q3, -2.25)) → iqrRayRight
  51. Q1(dataListWithCompare) → q1Compare
  52. Q3(dataListWithCompare) → q3Compare
  53. Vector(((q3Compare + q1Compare) / 2 - 4, -4.25), (q1Compare, -4.25)) → iqrRayLeftCompare
  54. Vector(((q3Compare + q1Compare) / 2 + 4, -4.25), (q3Compare, -4.25)) → iqrRayRightCompare
  55. BoxPlot(-1.5, 0.5, dataListValidOnly, If[outliersCk, true, false]) → boxPlot1
  56. BoxPlot(-3.5, 0.5, dataListWithCompare, If[outliersCk, true, false]) → boxPlotCompare
  57. CountIf(x ≥ 0, If[setDataCompare, dataListWithCompare, dataListValidOnly]) → countData
  58. Segment((If[setData1, Element[dataListAll, select1Data], x(dataPtCompare)], dataSlidersTopSliderHeight - 2), (If[setData1, Element[dataListAll, select1Data], x(dataPtCompare)], -100)) → set1DataAlignLine
  59. If(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.