直方图与箱线图对比探索
几何画板及绘图内容加载中,请稍等……
①本范例通过GeoGebra动态演示直方图与箱线图(盒须图)的同步构建与对比,帮助用户直观理解同一组数据在不同统计图表中的分布呈现。②核心数学概念包括数据排序、频数分布、均值、中位数、众数、四分位数(Q1、Q3)以及箱线图的五数概括(最小值、Q1、中位数、Q3、最大值)。③作图要点:利用Sequence、Segment、Point等命令生成最多16个可调数据点,通过Sort对数据排序,使用Histogram绘制直方图,BoxPlot绘制箱线图,并借助Mean、Median、Mode、Q1、Q3计算统计量,CountIf和If用于条件计数与逻辑判断,滑块(slider)控制数据值,实现交互式调整。④适合中学数学统计章节教学或自学,可用于课堂演示数据分布特征、离群值影响以及不同图表的信息表达能力。
GeoGebra 命令及参数
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 绘图提示语参考
绘制一个数据集的直方图和箱线图,并比较它们。首先,创建一个包含16个数据点的滑动条,调整这些数据点的位置。然后,根据这些数据点绘制直方图,接着绘制箱线图。最后,添加一个额外的数据点进行比较,并在直方图中显示该点的位置。
以上提示语为根据原始绘图命令整理而来,仅供参考。