双数据集对比统计图表几何构造工具

双数据集对比统计图表几何构造工具
几何画板及绘图内容加载中,请稍等……
2020-09-02 17:05
①本范例演示如何利用 GeoGebra 构造一个能同时对比表达两组不同数据的统计图表,实现数据的可视化并列对比与分析。②涉及的核心数学概念包括数列(Sequences)、算术平均值、统计分布以及几何多边形在数据可视化中的映射应用。③在作图要点上,该工具通过 `Sequence` 命令和 `InputBox` 输入框(绑定变量如 `v_1` 至 `v_{12}`)接收数据,利用 `Point`、`Segment` 和 `Midpoint` 构建坐标网格与定位,最终通过 `Polygon` 命令绘制出代表数据大小的多边形柱体(如 `Bar1`、`Data1` 等对象),并结合 `Textfield` 文本框实时显示统计指标。④该范例适合高中及以上学段,适用于统计学、几何作图及数据可视化跨学科教学,能有效提升学生对数据序列与几何构造结合的理解。

GeoGebra 命令及参数

  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 绘图提示语参考

在坐标系中建立一个用于对比的双集合统计条形图:先生成一组底部等距的水平位置点作为分组边界,并在同一x位置放置竖向刻度线,纵向方向统一到可调的最高高度。再在左侧构造两组独立的分组矩形条形,每组条形由四个角点围成封闭多边形,条高分别由两组数据序列控制;为每一类在每个数据组对应位置绘制一条条形。随后把每组条形顶端按相邻类别连接成折线,用以表示数据随类别变化的趋势。最后加入网格式的水平与竖向标记线,形成清晰的读数参照。
以上提示语为根据原始绘图命令整理而来,仅供参考。