海森频率格纸绘制的改进方法
2021-10-28王新华郭美华张慧颖
王新华,郭美华,张慧颖
(云南农业大学水利学院,云南 昆明 650201)
为了解决在普通方格纸上绘制水文频率曲线,曲线两端曲率特别陡峭、不方便外延的问题,1913年美国工程师海森设计了海森频率格纸。这种格纸的纵坐标仍然是普通均匀分格,用于标注水文变量值;横坐标标注频率,它的分划是按标准正态频率曲线拉长一条直线的原理计算出来的,中间分隔较密、越往两端分隔越稀疏,其间距在P=50%(分位数正好为0)的两端是对称的,用这种格纸可以很好的解决频率曲线的外延问题。海森频率格纸是水文频率分析重要的工具,频率分析的成果都需要绘制在海森频率格纸上。微软公司开发的Excel电子表格具有操作简便、功能强大、应用广泛的特点,已有多篇文献阐述Excel电子表格生成海森频率格纸、进行水文频率配线的方法、步骤[1- 7]。通过对这些文献的梳理,发现其绘制海森频率格纸的思路基本上是一致的,大致思路是:①输入一系列上升和下降相间的纵向平行线的两个端点坐标值,利用Excel带直角的散点图功能将它们首尾依次相连绘制出矩形折线波形图,即利用矩形折线波的上升波段和下降波段作为海森频率格纸的纵向网格线,而矩形波的高水平波段和低水平波段与海森频率格纸的图形边框线重合,频率格纸的水平线是均匀分布且可由Excel表格自动生成,从而实现海森频率格纸的网格线绘制。②再构造三列数据,在其中分别输入频率p值、x轴坐标值、y值最小值,将x轴坐标值、y值最小值两列数添加到已绘制的海森频率网格图上,并将x轴坐标值数据标签逐一修改成频率p值,从而完成海森频率格纸的绘制。这种方法虽然可行,但生成频率网格线需要输入大量纵向平行线段的端点数据值,还需要逐一修改横坐标的数据标签,非常繁琐,绘制效率不高。海森频率格纸至少要构造6列数据,其中前3列数据(频率、横坐标值(分位数-坐标原点的分位数)、纵坐标值),用于产生海森频率格纸矩形折线波所需的数据,后三列(频率、横坐标、纵坐标最小值)用来给横坐标标注相应的频率。本文通过对Excel图表工具功能的探索,发现Excel能够产生一组不等间距的纵轴平行线段,缩减了为构造平行线而输入大量数据的过程,节省了频率格纸绘制时间,提高了水文频率分析的效率。
1 海森频率格纸绘制数据准备
海森频率格纸的横坐标是在标准正态分布函数对应的分位数基础上构建的。在Excel中利用函数Normsinv(p)可以生成频率p对应的正态分布函数的分位数。例如在Excel任意单元格中输入公式=Normsinv(0.01%),按回车键后,该单元格显示分位数数值为-3.72,也就是说累积频率为0.01%时,对应的分位数为-3.72(对标准正态分布密度函数从负无穷到-3.72积分的积分值为0.01%)。现行的防洪标准规定的大(一)型水库土石坝防洪标准为5000~10000年,对应频率为0.02%~0.01%,并将其标注成0.01%。根据频率格纸的对称性原则,海森频率格纸横坐标的最右端应该normsinv(99.99%)=3.72,因此海森频率格纸的横坐标长度范围是从-3.72到3.72,人们习惯上将分析的起点作为横坐标原点,实际使用中x轴上各频率对应的值=Normsinv(p)-Normsinv(0.01%)。
新建一个Excel 表格文件,在打开的表格第一行A-F列依次输入p、分位数、x轴、y轴最小值、y轴最大值、重现期。在A2∶A21单元格从小到大依次输入频率P值,这些数据用于x轴横坐标的数据标签的标注。在B2单元格输入公式=Normsinv(A2%),并将公式复制到该B3∶B21区域,用于生成A列对应的分位数。在C2单元格输入公式=Normsinv(A2%)-Normsinv(0.01%),并将公式复制到该C3∶C21区域,用于生成A列频率对应的横坐标位置。在D2单元格输入0作为纵坐标的最小值,在D3单元格输入公式=D2,并粘贴到D4∶D21单元格,意味着Y轴最小值都等于D2单元格的值,当D2数值改变时,D列所有值都将自动同步改变。E2单元格输入1200作为海森纵坐标的最大值,在E3单元格输入公式=E2,并粘贴到E4∶E21单元格,意味着Y轴最大值都等于E2单元格的值。在F2单元格输入公式=1/A2%,并将其复制粘贴到F3∶F14单元,用于计算P≤50%时的重现期(T=1/P);在F15单元格输入公式=1/(1-A15%),并将其复制粘贴到F16∶F21单元,用于计算P≥50%时的重现期(T=1/(1-P)),F列数据可用于频率格纸上方重现期的标注,海森频率格纸制作基本数据见表1。
表1 海森频率格纸制作基本数据
2 海森频率格纸网格线的生成
海森频率格纸的网格线是由一组与x轴平行的均匀间隔的水平线和与y轴平行的不等间距的纵向线构成,这些线都可以通过Excel图表的散点图功能来生成。思路是:①首先利用x轴0~7.44范围内的数据点和y轴最小值、y轴最大值,生成海森频率格纸的下边界、上边界的水平线段。②水平网格线通过设置纵坐标边界和主要、次要刻度线来形成。③选中上边界的水平线段,使用【图表工具】【设计】【添加图表元素】中的误差线设置来生成纵向平行线。④删除系统自动生成的x轴坐标,即可形成频率格纸网格线。
具体操作步骤如下:选中表1中C2∶D21单元格区域,在表格上方菜单栏中点击【插入】菜单下方出现的图表【散点图】图标,在该图标弹出的散点图类型中选中带平滑线和数据标记的散点图,即可出现一条带数据标记点的水平线,每个点的位置就是用来生成y轴平行线的位置,也就是各频率点对应的x轴位置。在图表内任意位置单击鼠标右键,在弹出的即时对话框中选中【选择数据】,在弹出的选择数据源对话框年,点击【添加】按钮,在出现的编辑数据系列中X轴系列值选中C2∶C21单元格区域,Y轴系列值选中E2∶E21单元区域,然后点击【确定】,上、下两条水平线(频率格纸的上、下边界)将出现在图中(如图1所示)。
图1 海森频率格纸的上下边界线雏形
将鼠标放至y轴左侧的数据刻度标注上,单击鼠标左键选中它,再单击鼠标右键,在出现的【设置坐标轴格式】对话框中,将边界最小值设为0,最大值设为y轴最大值(本文示例为1200),同样方法设置x轴边界最小值为0,最大值为7.44。将鼠标移至图中垂向网格线位置,单击鼠标左键选中,然后按delete键将其删除(或者单击鼠标右键,在出现的即时对话框中选择删除),此时图中就只有水平线了(如图2所示)。
图2 海森频率格纸的上下边界线及水平网格线
选中图中带标记点的上边界水平线段,点击编辑栏左上角出现的【添加图表元素】,在出现的下拉菜单中选中【误差线】、【误差线其他选项】,在右侧弹出的【设置误差线格式】对话框中,垂直误差线方向选取负偏差,末端样式选择无线端,误差量选择百分比,数值修改为100(即100%);水平误差线方向选正偏差,末端样式选择无线端,误差量取固定值0,然后关闭误差项设置对话框,就可以生成基于上边界线各数据点横坐标位置的纵向平行线族,它们与水平线交织形成了海森频率格纸的网格(如图3所示)。
图3 误差线格式设置对话框选取图
3 横坐标频率值刻度标注设置
图4中的网格线是海森频率格纸的雏形,还需去除上下边界线的圆点标记、清除系统自动生成的x坐标、在纵向线与下边界线相交位置的下方标注x坐标对应的频率p值、上边界相应位置标准重现期值(为避免数字太密集,有些重现期值可不标准出来),同时需要给x轴、y轴设置标题。
图4 海森频率格纸网格线雏形图
选中上边界线,单击右键在出现的对话框中选择【设置数据系列格式】,标记选项中选取无,对下边界线也采用这一操作,从而使上、下边界线成为一条不带圆点标记的光滑水平线。
点击x轴下方的坐标刻度标注,按delete键后,可以清除原系统自动生成的x轴坐标刻度。
在图表下边界线段上单击鼠标左键选中该线段,在菜单栏【图表工具】、【设计】按钮下方最左端单击【添加图表元素】按钮,在出现的下拉菜单中选择【数据标签】、【其他数据标签】选项,出现【设置数据标签格式】对话框(Excel 2016出现的对话框是图5左侧的图片,Excel 2013出现的对话框是图5右侧的图片),选中【单元格中的值】前面的复选框,弹出【数据标签区域】选择框,选中频率所在的列的数据(本文中为A2∶A21区域),点击【确定】,同时去掉标签选项中的其他复选框的对勾,标签位置选择靠下,即可完成频率格纸下边界(横坐标)频率的数值标注。使用同样的方法,对上边界用重现期所在列的值(选择范围是单元格F2∶F21区域)进行标注。需要注意的是Excel 2013及以前的版本时,数据标签设置格式没有提供【单元格的值】复选框,此时只能选择X值复选框,取消Y值复选框,然后把鼠标移动到各个标签位置,将标签逐一修改成相应的频率P值或重现期值。
图5 设置数据标签对话框
在添加图表元素按钮中,选择【坐标轴标题】,修改X轴坐标题名称为“频率(%)”,并将其拖动到x轴下方适当位置。同样方法修改纵轴名称为相应的水文变量名称并加注数据单位,即可完成海森频率格纸绘制的全部任务。
4 频率格纸的工程应用
在工程使用中,在已知均值、离差系数Cv和偏态系数Cs值和各频率P后,在Excel中利用函数公式 求出各频率的对应的设计值,结合各频率对应的x值(Normsinv(P)-Normsinv(0.01%)),可以将理论频率曲线数据对添加到频率格纸上,结合各经验频率水文变量值和对应的x轴值,也可以将经验频率点据添加到频率格纸上,从而完成频率分析任务。
图6 最终制成的海森频率格纸图
本文中海森频率格纸的纵坐标最小值为0,最大值为1200,实际工程中可根据水文变量可能的取值范围对其进行调整。比如最小值取20,最大值取180,则需要在单元格D2、E2中分别输入20、180,再选中频率格纸的纵坐标,将坐标轴边界最小值、最大值分别修改为20和180,并设置单位大、小(即纵坐标水平网格线间距)为适宜值,即可得到适合具体项目使用的频率格纸。
对于枯水频率分析时,关注的是频率较大时的水文变量取值,没有必要显示P<1%的那部分曲线(以便节省图纸空间、合理布局图纸),这时可以选中频率格纸,在添加图表元素工具栏下选中主要横坐标,设置坐标轴边界最小值为1.39(对应频率为1%),最大值为6.045(对应频率为99%),关闭坐标轴设置按钮,并删除系统自动生成的坐标轴,就可得到比较适宜的频率格纸。
5 结语
本文借助Excel散点图中点误差线分析功能,生成了不等间距的纵向平行线,实现了海森频率格纸网格线的自动绘制功能,在Excel 2016中坐标轴标签的修改也实现了一键完成功能,通过简单修改纵坐标最大值和最小值和频率格纸上纵坐标轴和横坐标的边界值,可以使频率格纸适用于各种具体情况的水文分析,这种频率格纸绘制方法的改进,简化了以往为生成纵向平行线而输入数据的过程,绘制效率大幅度提高,工程适应性强,适合广大水文工作者推广使用。