直方图构造工具:频数统计与分布参数演示
几何画板及绘图内容加载中,请稍等……
本范例演示如何在 GeoGebra 中自动构造直方图,并用频数与分布参数对比离散数据的分布形态。核心数学概念包括:直方图(bin / frequency bar)的分箱思想、统计中的计数函数与频数表、以及二项分布的概率参数(常见记作 p、q,且配合整数取值范围)。作图要点是将给定数据或由分布生成的整数样本进行分段计数:通过 Length、Min、Max 确定取值区间,使用 If 与 CountIf 完成对每个“区间/桶”的计数筛选,借助 Sequence 生成用于分箱的索引或整数集合,再用 Frequency 汇总频数;同时配合 Textfield、TableText、Append 组织显示标题与表格信息,并用 Segment 与 VerticalText 绘制每一根直方图柱(从基线竖向延伸并标注文字)。适合高中到大学初阶的概率统计教学与实验探究,也适用于课堂演示与作业中让学生观察参数变化对频数分布的影响。
GeoGebra 命令及参数
Length(Data) → nMin(Data) → pMax(Data) → qIf(d > 1, 1, If[d > 0.1, 0.1, 0.01]) → tCountIf(A2 ≤ x ≤ C2, Data) → H2CountIf(A3 ≤ x ≤ C3, Data) → H3CountIf(A4 ≤ x ≤ C4, Data) → H4CountIf(A5 ≤ x ≤ C5, Data) → H5CountIf(A6 ≤ x ≤ C6, Data) → H6CountIf(A7 ≤ x ≤ C7, Data) → H7CountIf(A8 ≤ x ≤ C8, Data) → H8CountIf(A9 ≤ x ≤ C9, Data) → H9Sequence(a - t / 2 + ((i - 1) * d), i, 1, k + 1, 1) → BoundariesFrequency(Boundaries, Data) → FreqMax(ceil(Max[Freq] / b), 2) → uSequence(a - t / 2 + (((2 * i) - 1) * d / 2), i, 1, k, 1) → ClassMarkSequence((i * b), i, 2, u + 1, 2) → FreqMarkSequence((-8.5 - (0.25 * (ceil(lg(Element[FreqMark, i / 2] + 1)) - 1)), i - 4.15), i, 2, u + 1, 2) → YpointSequence((i - 8.15 - (0.15 * ceil(lg(Element[ClassMark, (i - 1) / 2] + 1) - 1)), -4.6), i, 3, 2 + (2 * k) - 1, 2) → XpointTextfield(Title) → InputBoxTitleTextfield(Data) → InputBoxDataTextfield(a) → InputBox3Sequence(If[n ≥ i, Element[Data, i], x], i, 1, If[n ≥ 10, 10, n], 1) → list1Sequence(If[n ≥ i, Element[Data, i], x], i, 11, If[n ≥ 20, 20, n], 1) → list2Sequence(If[n ≥ i, Element[Data, i], 32], i, 21, If[n ≥ 30, 30, n], 1) → list3Sequence(If[n ≥ i, Element[Data, i], x], i, 31, If[n ≥ 40, 40, n], 1) → list4Sequence(If[n ≥ i, Element[Data, i], x], i, 51, If[n ≥ 60, 60, n], 1) → list6Sequence(If[n ≥ i, Element[Data, i], x], i, 61, If[n ≥ 70, 70, n], 1) → list7Sequence(If[n ≥ i, Element[Data, i], x], i, 71, If[n ≥ 80, 80, n], 1) → list8Sequence(If[n ≥ i, Element[Data, i], x], i, 81, If[n ≥ 90, 90, n], 1) → list9Sequence(If[n ≥ i, Element[Data, i], x], i, 41, If[n ≥ 50, 50, n], 1) → list5Sequence(If[n ≥ i, Element[Data, i], x], i, 91, If[n ≥ 100, 100, n], 1) → list10TableText({list1, list2, list3, list4, list5, list6, list7, list8, list9, list10, "."}) → text21Append(Element[list11, 1], Sequence[Element[list21, i], i, 1, k, 1]) → list25Append(Element[list11, 2], Sequence[Element[list22, i], i, 1, k, 1]) → list26Append(Element[list11, 3], Sequence[Element[list23, i], i, 1, k, 1]) → list27Append(Element[list11, 4], Sequence[Element[list24, i], i, 1, k, 1]) → list28TableText({list25, list26, list27, list28}, "vc|_") → text22Sequence(Segment[(-8, (0.2 * i) - 4), (-5 + (2 * k), (0.2 * i) - 4)], i, 1, ((u + 1) * 5), 1) → Hori1Sequence(Segment[(-8, i - 4), (-5 + (2 * k), i - 4)], i, 0, u + 1, 1) → Hori2Segment((-7.2, -3.6), (-7, -4.4)) → hSegment((-7.4, -4), (-7.2, -3.6)) → gSegment((-8.2, -4), (-7.4, -4)) → fSegment((-8, -4), (-8, u - 3)) → YaxisSegment((-6.8, -4), (-5 + (2 * k), -4)) → XaxisSegment((-7, -4.4), (-6.8, -4)) → iSequence(Segment[(-8, i - 4), (-8.2, i - 4)], i, 2, u + 1, 2) → Hori3Sequence(Segment[(i - 8, -4), (i - 8, u - 3)], i, 1, 2 + (2 * k) + 1, 1) → Vert2Sequence(Segment[(i - 8, -4), (i - 8, -4.2)], i, 3, 2 + (2 * k) - 1, 2) → Vert3Sequence(Polygon[(-6 + (2 * (i - 1)), -4), (-6 + (2 * (i - 1)), -4 + Element[Freq, i] / b), (-6 + (2 * i), -4 + Element[Freq, i] / b), (-6 + (2 * i), -4)], i, 1, k, 1) → BlockSequence(Segment[((0.2 * i) - 8, -4), ((0.2 * i) - 8, u - 3)], i, 1, ((2 + (2 * k) + 1) * 5), 1) → Vert1VerticalText(If[chi ≟ true, "頻 數", "Frequency"]) → text17
AI 绘图提示语参考
要绘制一个直方图,展示数据频率分布。数据范围由最小值和最大值确定,区间通过序列生成。计算每个区间的频数,然后绘制垂直柱状图,柱高对应频数。柱状图左侧标注区间和频数,右侧显示数据点。构造顺序为:先设定数据范围和区间宽度,再统计频数,最后绘制柱状图并标注。
以上提示语为根据原始绘图命令整理而来,仅供参考。