直方图与箱线图对比探索

直方图与箱线图对比探索
几何画板及绘图内容加载中,请稍等……
2014-05-19 00:05
①本范例通过GeoGebra动态演示直方图与箱线图(盒须图)的同步构建与对比,帮助用户直观理解同一组数据在不同统计图表中的分布呈现。②核心数学概念包括数据排序、频数分布、均值、中位数、众数、四分位数(Q1、Q3)以及箱线图的五数概括(最小值、Q1、中位数、Q3、最大值)。③作图要点:利用Sequence、Segment、Point等命令生成最多16个可调数据点,通过Sort对数据排序,使用Histogram绘制直方图,BoxPlot绘制箱线图,并借助Mean、Median、Mode、Q1、Q3计算统计量,CountIf和If用于条件计数与逻辑判断,滑块(slider)控制数据值,实现交互式调整。④适合中学数学统计章节教学或自学,可用于课堂演示数据分布特征、离群值影响以及不同图表的信息表达能力。

GeoGebra 命令及参数

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

绘制一个数据集的直方图和箱线图,并比较它们。首先,创建一个包含16个数据点的滑动条,调整这些数据点的位置。然后,根据这些数据点绘制直方图,接着绘制箱线图。最后,添加一个额外的数据点进行比较,并在直方图中显示该点的位置。
以上提示语为根据原始绘图命令整理而来,仅供参考。