S4E19 概率实验难演示?(下)
在先前 S4E05概率实验难演示?不存在的! 这文章中,介绍了随机转盘的制作方式,在这篇文章将来演示如何取得转盘的结果,并绘制些统计图表来显示结果。

你将学会
1. 如何用脚本记录实验结果?
2. 如何使用表格文字?
3. 如何将统计结果绘制成图表?
4. 如何用滑动杆调整坐标轴的显示。
提醒:本节前需要接续前一节 S4E05概率实验难演示?(上)

4 累计统计结果

问:我希望可统计每次的结果,那我需要什么?
答:需要一个变数来记录每个颜色出现的次数。
在此用 nums={0,0,0,0,0,0} 来记录。
问:那这个记录如何被更新呢?
答:每次按【转】这按钮时,需要触发更新的操作。
问:那该如何更新呢?
答:每次新的结果记录在变数 new={0,0,0,0,0,0} 中,其中 new 只会在这次的结果所对应的位置出现 1 ,接着再将 new 的结果更新到 nums 内。
将 转动 的【按钮】加入以下脚本:
new = Sequence(If(k==resIndex,1,0),k,1,6)
#Sequence 序列
SetValue(nums, nums+new)
#SetValue 赋值
问:当执行多次后,nums 的记录越多,如何重新开始呢?
答:需要用一个按钮来,触发记录归0的设定。
新增【按钮】标题为{重置}。脚本如下:
nums = {0,0,0,0,0,0}
问:除了计算次数外,如何一并计算出现频率?
答:先取得 nums 的总次数,再用序列分别计算每个颜色出现的频率。
输入以下 snums 记录总次数,再用 freqs 计算频率。
snums = max(sum(nums),1)
freqs = Sequence(nums(k)/snums, k, 1,6) #Sequence 序列
5. 显示统计结果

问:如何显示长条图?
答:利用 BarChart 即可。
BarChart 指令的三个参数分别为 x 坐标,y坐标与宽度
BarChart({1,2,3,4,5,6},nums,0.8) #BarChart 条形图
问:这 {1,2,3,4,5,6} 是指什么
答:每一栏的 x 坐标
问:0.8 又是指什么?
答:宽度
问:那统计的数字如何显示呢?
答:利用 TableText可将多个list 以表格方式呈现,输入以下指令:
TableText(names,nums,freqs)
#TableText 表格文本
问:如何加入标题?
答:先用 Append 再每一列加入标题文字,指令如下:
tnames = Append(
"颜色"
, names)
tnums = Append(
"次数"
, nums)
tfreqs = Append(
"频率"
, freqs)
#Append 追加
TableText(tnames,tnums,tfreqs)
#TableText 表格文本
问:如何对齐表格与条形图的位置?
答:利用 zoomin 来微调。
6. 优化显示统计

问:当长条图超出画面可以如何调整。
答:利用一个滑动条,来设定缩放比例。
建一个滑动条 yscale,范围从 1 到 4,在脚本中输入以下代码:
SetAxesRatio(1,yscale) #SetAxesRatio 设置坐标轴比例
问:是否可让每个长条图不同颜色。
答:用 barChart 来绘制时,颜色相同。需用 Sequence 来完成,才能各别上色。
输入以下六个指令,来调整六个长条图的显示。
C1s = Sequence(Circle((1,k-0.5),0.5),k,1,nums(1)) #Sequence 序列
C2s = Sequence(Circle((2,k-0.5),0.5),k,1,nums(2))
C3s = Sequence(Circle((3,k-0.5),0.5),k,1,nums(3))
C4s = Sequence(Circle((4,k-0.5),0.5),k,1,nums(4))
C5s = Sequence(Circle((5,k-0.5),0.5),k,1,nums(5))
C6s = Sequence(Circle((6,k-0.5),0.5),k,1,nums(6))
问:上面指令中的 Circle((6,k-0.5),0.5) 为何这样写呢?
答:Circle 表示圆, 第一个参数表示圆心,第二个参数表示半径 0.5。
问:在最后的 k,1,nums(1) 的作用是什么呢?
答:因为第i 个 circle 的 y 坐标为 k-0.5,k 要控制每个颜色要绘制的圆圈数。从第 1 个到 第 nums(i) 个。这个 nums(i) 就记录第 i 个颜色出现的次数。
小结
这次教学主要展示数据的记录与显示。在问题拆解的主要结构为:
1. 要记录哪些资料:每个颜色出现的次数
2. 何时触发记录:按下按钮时同时记录
3. 如何呈现资料:条形图、表格
在其他问题也可依照这个问题拆解方法,也期待你用这方法来实作其他记录模拟问题:产生随机性、作记录、展示资料。
参考资料
【Bili】https://www.bilibili.com/video/av75148091?p=5
【Youtube】https://www.youtube.com/playlist?list=PLXH05kw-i_5IRktOSc1CPN7UzdWNY8VzR