Dual-Set Data Statistical Chart Construction Tool

Dual-Set Data Statistical Chart Construction Tool
Loading the math board and drawing, please wait…
2020-09-02 17:05
This GeoGebra example demonstrates the construction of a statistical chart tool designed to simultaneously represent and compare two distinct datasets, enabling clear visual contrast of statistical distributions. The core mathematical concepts involved include data sequences, arithmetic mean, and the geometric mapping of numerical data into polygonal visual elements. In terms of construction, the tool leverages the `Sequence` command and `InputBox` objects to handle variable inputs (such as v_1 through v_{12}), utilizes `Point`, `Segment`, and `Midpoint` to establish the coordinate framework, and employs the `Polygon` command to render the comparative data bars (e.g., `Bar1`, `Data1`), integrated with `Textfield` objects for dynamic labeling. This example is ideal for high school and university students, particularly in statistics, coordinate geometry, and data visualization courses, to teach the intersection of algebraic data processing and geometric construction.

GeoGebra Commands & Parameters

  1. Sequence((-4 + i, -4.2), i, 0, 18, 2) → g, {(-4, -4.2), (-2, -4.2), (0, -4.2), (2, -4.2), (4, -4.2), (6, -4.2), (8, -4.2), (10, -4.2), (12, -4.2), (14, -4.2)}
  2. Textfield() → InputBox1
  3. Point(g) → N
  4. Sequence((-12, 2 + i + 0.2), i, 0, 4, 2) → f, {(-12, 2.2), (-12, 4.2), (-12, 6.2)}
  5. Point(f) → M
  6. Segment((-10, -4), (-10, Ymax)) → v_1
  7. Segment((-6, -4), (-6, Ymax)) → v_3
  8. Segment((0, -4), (0, Ymax)) → v_6
  9. Segment((2, -4), (2, Ymax)) → v_7
  10. Segment((4, -4), (4, Ymax)) → v_8
  11. Segment((6, -4), (6, Ymax)) → v_9
  12. Segment((8, -4), (8, Ymax)) → v_{10}
  13. Segment((10, -4), (10, Ymax)) → v_{11}
  14. Segment((-4, -4), (-4, Ymax)) → v_4
  15. Segment((-2, -4), (-2, Ymax)) → v_5
  16. Segment((12, -4), (12, Ymax)) → v_{12}
  17. Point(v_1) → A
  18. Segment((-8, -4), (-8, Ymax)) → v_2
  19. Point(v_2) → B
  20. Point(v_3) → C
  21. Point(v_4) → D
  22. Point(v_5) → E
  23. Point(v_6) → F
  24. Point(v_7) → G
  25. Point(v_8) → H
  26. Point(v_9) → I
  27. Point(v_{10}) → J
  28. Point(v_{11}) → K
  29. Point(v_{12}) → L
  30. Sequence(Polygon[(-13 + (2 * i) + 0.4, -4), (-13 + (2 * i) + 0.4, Element[Data1, i]), (-13 + (2 * i) + 1.6, Element[Data1, i]), (-13 + (2 * i) + 1.6, -4)], i, 1, numClass, 1) → Bar1, {9.584999999999994, 6, 4.779999999999998, 7.199999999999998, 7.7700000000000005, 6.26, 5.706000000000002, 6.339999999999999, 6.339999999999996, 6.319999999999993, 6.599999999999994, 6.359999999999996}
  31. Point(v_1) → A'
  32. Point(v_2) → B'
  33. Point(v_3) → C'
  34. Point(v_4) → D'
  35. Point(v_5) → E'
  36. Point(v_6) → F'
  37. Point(v_7) → G'
  38. Point(v_8) → H'
  39. Point(v_9) → I'
  40. Point(v_{10}) → J'
  41. Point(v_{11}) → K'
  42. Point(v_{12}) → L'
  43. Sequence(Segment[(-12 + (2 * i), Element[Data1, i]), (-10 + (2 * i), Element[Data1, i + 1])], i, 1, numClass - 1, 1) → Line1, {3.5951573331357842, 2.2435710621932863, 2.8402366881026735, 2.0556325060671714, 2.3629225077809424, 2.0525925341165765, 2.068607287793193, 2, 2.0000694432388535, 2.0135651080718606, 2.009975124224178}
  44. Sequence(Polygon[(-13 + (2 * i) + 0.4, -4), (-13 + (2 * i) + 0.4, Element[Data2, i]), (-13 + (2 * i) + 1.6, Element[Data2, i]), (-13 + (2 * i) + 1.6, -4)], i, 1, numClass, 1) → Bar2, {8.459999999999994, 10.199999999999989, 11.384999999999987, 9.629999999999995, 8.940000000000001, 9.3, 7.840000000000002, 7.579999999999999, 7.719999999999997, 8.019999999999996, 7.999999999999993, 2.3599999999999994}
  45. Sequence(Segment[(-12 + (2 * i), Element[Data2, i]), (-10 + (2 * i), Element[Data2, i + 1])], i, 1, numClass - 1, 1) → Line2, {2.470323865407125, 2.230505828282007, 2.4776816280547442, 2.0810153771656754, 2.0223748416156684, 2.340999311784986, 2.0117018776261166, 2.0033998879682287, 2.0155644370746373, 2.0000694432388535, 5.107837115648853}
  46. Sequence(Segment[(-12 + (2 * i), -4), (-12 + (2 * i), -4.3)], i, 1, numClass, 1) → ClassMark, {0.2999999999999998, 0.2999999999999998, 0.2999999999999998, 0.2999999999999998, 0.2999999999999998, 0.2999999999999998, 0.2999999999999998, 0.2999999999999998, 0.2999999999999998, 0.2999999999999998, 0.2999999999999998, 0.2999999999999998}
  47. Sequence(Segment[(-12 + (0.2 * i), -4), (-12 + (0.2 * i), Ymax)], i, 1, (((2 * numClass) + 2) * 5), 1) → Vert1, {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}
  48. Sequence(Segment[(-12, -4 + (0.2 * i)), ((2 * numClass) - 10, -4 + (0.2 * i))], i, 1, ((Ymax + 4) * 5), 1) → Hor1, {26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26}
  49. Sequence(Segment[((2 * numClass) - 10, -6 + i), ((2 * numClass) - 10 + 0.3, -6 + i)], i, 2, Ymax + 6, 2) → Ymark2, {0.3000000000000007, 0.3000000000000007, 0.3000000000000007, 0.3000000000000007, 0.3000000000000007, 0.3000000000000007}
  50. Sequence(Segment[(-12, -6 + i), (-12.3, -6 + i)], i, 2, Ymax + 6, 2) → Ymark1, {0.3000000000000007, 0.3000000000000007, 0.3000000000000007, 0.3000000000000007, 0.3000000000000007, 0.3000000000000007}
  51. Textfield() → InputBox2
  52. Textfield() → InputBox3
  53. Textfield() → InputBox4
  54. Textfield() → InputBox5
  55. Textfield() → InputBox6
  56. Textfield() → InputBox7
  57. Textfield() → InputBox8
  58. Textfield() → InputBox9
  59. Textfield() → InputBox10
  60. Textfield() → InputBox11
  61. Textfield() → InputBox13
  62. Textfield() → InputBox14
  63. Textfield() → InputBox15
  64. Textfield() → InputBox16
  65. Textfield() → InputBox17
  66. Textfield() → InputBox18
  67. Textfield() → InputBox19
  68. Textfield() → InputBox20
  69. Textfield() → InputBox21
  70. Textfield() → InputBox22
  71. Textfield() → InputBox23
  72. Textfield() → InputBox24
  73. Textfield() → InputBox12
  74. Point(Circle[Q_1, 1]) → Q_2
  75. Segment(Q_1, Q_2) → h
  76. Midpoint(Q_1, Q_2) → Q
  77. Polygon(P_4, P_1, P_2, P_3) → q1, p_4, p_1, p_2, p_3
  78. Textfield() → InputBox25
  79. Point(Circle[R_1, 1]) → R_2
  80. Segment(R_1, R_2) → i
  81. Midpoint(R_1, R_2) → R
  82. Textfield() → InputBox26
  83. Segment((-12, -4), ((2 * numClass) - 10, -4)) → j
  84. Segment((-12, -4), (-12, Ymax)) → k
  85. Segment((-12 + (2 * numClass) + 2, -4), (-12 + (2 * numClass) + 2, Ymax)) → l
  86. Sequence(Length[Element[l2, i]], i, 1, 6, 1) → l3, {0, 0, 0, 0, 0, 0}
  87. Sequence(Length[Element[l4, i]], i, 1, 6, 1) → l5, {0, 0, 0, 0, 0, 0}
  88. Sequence(Length[Element[l6, i]], i, 1, 12, 1) → l7, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
  89. Sequence(Segment[(-12 + i, -4), (-12 + i, Ymax)], i, 0, (2 * numClass) + 2, 1) → Vert2, {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}
  90. Sequence(Segment[(-12, -4 + i), ((2 * numClass) - 10, -4 + i)], i, 0, Ymax + 4, 1) → Hor2, {26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26}

AI Drawing Prompt Reference

Create a coordinate-plane comparison chart with two datasets as statistical bars. First place regularly spaced baseline points that act as group boundaries, then draw vertical reference lines at fixed x-positions rising to a common maximum height. Next, on the left side, construct two separate sets of closed rectangular polygons (bars), one set for each dataset, where each bar’s height is determined by the corresponding data value and the bars for each class are aligned at consistent horizontal offsets. After that, connect the top points of consecutive bars in each dataset with a polyline to show the changing trend across classes. Finally add horizontal and vertical grid/reference lines to support reading values clearly.
The prompt above was compiled from the original drawing commands and is for reference only.