图形检验产品
<p>[TOC]</p>
<pre><code class="language-python">%matplotlib inline
%load_ext autoreload
%autoreload 2
import meteva.method as mem
import numpy as np</code></pre>
<pre><code>The autoreload extension is already loaded. To reload it, use:
%reload_ext autoreload</code></pre>
<p><strong><em>通过随机函数生成测试数据,用于后续检验函数调用示例</em></strong></p>
<pre><code class="language-python">list1 = np.random.rand(200).tolist()
list1.append(2) #为了展示图像效果,增加一个离群数据点
ob = np.array(list1) #建立观测数据
fo1 = 0.1+0.8*ob+np.random.randn(201)*0.1 #在观测上加入线性变换和随机扰动作为预报
fo2 = np.array([fo1-0.4,fo1-0.3,fo1-0.2,fo1-0.1,fo1+0.1,fo1+0.2,fo1+0.3,fo1+0.4]) #构造一个比ob多一维的数组存储多家预报
fo_name_list = [&quot;ECMWF&quot;,&quot;NCEP&quot;,&quot;T639&quot;,&quot;SCMOC&quot;,&quot;GRAPES&quot;,&quot;GRAPES_MESO&quot;,&quot;GRAPES-3KM&quot;,&quot;SHANGHAI&quot;]</code></pre>
<h1>散点回归图</h1>
<p><strong><font face="黑体" color=blue size = 5>scatter_regress(ob, fo,member_list = None, rtype="linear",vmax = None,vmin = None,ncol = None, save_path=None,show = False,dpi = 300, title="散点回归图",sup_fontsize = 10,width = None,height = None)</font></strong><br />
绘制观测-预报散点图和线性回归曲线,横坐标为观测值,纵坐标为预报值,横坐标很纵轴标取值范围自动设为一致,在图形中间添加了完美预报的参考线。 </p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>ob</font></strong></td>
<td style="text-align: left;">实况数据, 任意维numpy数组</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>fo</font></strong></td>
<td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td>
</tr>
<tr>
<td style="text-align: left;"><strong>member_list</strong></td>
<td style="text-align: left;">预报成员的名称列表</td>
</tr>
<tr>
<td style="text-align: left;"><strong>rtype</strong></td>
<td style="text-align: left;">绘制类型,默认为linear,还可以选择rate,选择rate时,会采用Y=AX函数进行拟合获得参数A</td>
</tr>
<tr>
<td style="text-align: left;"><strong>vmax</strong></td>
<td style="text-align: left;">绘图窗口y轴方向最大值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>vmin</strong></td>
<td style="text-align: left;">绘图窗口y轴方向最小值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>ncol</strong></td>
<td style="text-align: left;">subplot的列数,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片保存路径,缺省时不输出图片,而是以默认绘图窗口形式展示</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path 和save_dir 为都None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>dpi</strong></td>
<td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>title</strong></td>
<td style="text-align: left;">图片标题,缺省时 为“散点回归图”</td>
</tr>
<tr>
<td style="text-align: left;"><strong>sup_fontsize</strong></td>
<td style="text-align: left;">图片标题的字体大小,其它字体将根据标题字体大小自动设置,其中坐标轴字体大小 = sup_fontsize × 0.9, 坐标刻度的字体大小 = sup_fontsize × 0.8</td>
</tr>
<tr>
<td style="text-align: left;"><strong>width</strong></td>
<td style="text-align: left;">图片的宽度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>height</strong></td>
<td style="text-align: left;">图片的高度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>return</font></strong></td>
<td style="text-align: left;">无返回结果</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">mem.scatter_regress(ob,fo1,member_list =[&quot;EC&quot;]) #传入预报数据和观测数据shape一致的情况
#图中散点颜色表现的是散点附近的密度,散点越密集颜色越偏红,反之则偏蓝</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=d4fa07c056fb8ba3081c617d63bbe390" alt="" /></p>
<pre><code class="language-python">mem.scatter_regress(ob,fo2[0:4,:],member_list = fo_name_list[0:4]) #传入的预报比观测高出一维的情况</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=49846873ffa9206af32e15e0c8f82e35" alt="" /></p>
<pre><code class="language-python">mem.scatter_regress(ob,fo2[0:4,:],member_list = fo_name_list[0:4],rtype = &quot;rate&quot;,ncol = 4) #回归的函数采用比例函数,设置列数为4</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=c2c5dc650b9b7a74261aba0be85df5c3" alt="" /></p>
<h1>频率关系图</h1>
<p><strong><font face="黑体" color=blue size = 5>pdf_plot(ob, fo, member_list = None,vmax = None,vmin = None,save_path=None, show = False,dpi = 300,title="频率匹配检验",sup_fontsize = 10,width = None,height = None,yscale = None)</font></strong>
将观测和预报值分别从小到大排序,将排序后的两组数据绘制成包含两幅子图的频率匹配关系图。第一幅子图为观测和预报的概率分布函数对比图,其横坐标为要素取值,其纵坐标是累积概率,设(x,y)为在图中绘制的线条上的点,则 y = p(变量值 <=x),第二幅子图频率匹配映射关系图,横坐标为观测值,纵坐标为预报值,设(x,y)为图中线条上的点,则 p(观测值 <= x) = p(预报值 <= y) , 图中横坐标很纵轴标取值范围自动设为一致,并在图形中间添加了完美预报的参考线。 </p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>ob</font></strong></td>
<td style="text-align: left;">实况数据, 任意维numpy数组</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>fo</font></strong></td>
<td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td>
</tr>
<tr>
<td style="text-align: left;"><strong>member_list</strong></td>
<td style="text-align: left;">预报成员的名称列表</td>
</tr>
<tr>
<td style="text-align: left;"><strong>vmax</strong></td>
<td style="text-align: left;">绘图窗口y轴方向最大值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>vmin</strong></td>
<td style="text-align: left;">绘图窗口y轴方向最小值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片保存路径,缺省时不输出图片,而是以默认绘图窗口形式展示</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path 和save_dir 为都None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>dpi</strong></td>
<td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>title</strong></td>
<td style="text-align: left;">图片标题,缺省时 为“频率匹配检验图”</td>
</tr>
<tr>
<td style="text-align: left;"><strong>sup_fontsize</strong></td>
<td style="text-align: left;">图片标题的字体大小,其它字体将根据标题字体大小自动设置,其中坐标轴字体大小 = sup_fontsize <em> 0.9, 坐标刻度的字体大小 = sup_fontsize </em> 0.8</td>
</tr>
<tr>
<td style="text-align: left;"><strong>width</strong></td>
<td style="text-align: left;">图片的宽度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>height</strong></td>
<td style="text-align: left;">图片的高度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>yscale</strong></td>
<td style="text-align: left;">包含None,"log"和"logit"三个选项 默认值为None,y轴为线性坐标, <br> 当yscale = "log" 时,y轴采用对数形式展示概率分布函数在y=0附近的细节,这在能见度等要素的检验更合适。 <br> 当yscale = "logit" 时,y轴采用对数形式展示概率分布函数在y=1附近的细节,这在降水等要素的检验更合适</td>
</tr>
<tr>
<td style="text-align: left;"><strong>grid</strong></td>
<td style="text-align: left;">是否在绘图框中添加网格线</td>
</tr>
<tr>
<td style="text-align: left;"><strong>percent</strong></td>
<td style="text-align: left;">由于在极值附近的频谱匹配结果不太可靠,如果只想保留频率匹配图中较可靠的部分,可以用该参数控制,默认只[0,1]表示保留所有的样本用于统计,如果[0.05,0.95]则表示观测和预报数据数据各自排序,再各自保留5%和95%分位之间的样本用于统计</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>return</font></strong></td>
<td style="text-align: left;">无返回结果</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">mem.pdf_plot(ob,fo1) #检验单个预报</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/fc479d895e53eb5c2daba1a81543950a" alt="" /></p>
<pre><code class="language-python">mem.pdf_plot(ob,fo1,yscale= &quot;log&quot;) # yscale= &quot;log&quot;,将0附近以对数展示</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/6b383ab3bbc9fd46fb09aea5c8b68d41" alt="" /></p>
<pre><code class="language-python">mem.pdf_plot(ob,fo1,yscale= &quot;logit&quot;) # yscale= &quot;logit&quot;,将1附近以对数展示</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/cd7c6f46b410e3d0ff22eb1d9afa3c72" alt="" /></p>
<pre><code class="language-python">#同时对多个预报进行对比检验,将结果输出到图片且在屏幕中打印
mem.pdf_plot(ob,fo2,member_list = fo_name_list,save_path = r&quot;H:\test_data\output\method\continue\pdf.png&quot;,show = True)</code></pre>
<pre><code>检验结果已以图片形式保存至H:\test_data\output\method\continue\pdf.png</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/6febbf23e790e30d2a927eda1453e19b?showdoc=.jpg" alt="" /></p>
<h1>频率对比箱须图</h1>
<p><strong><font face="黑体" color=blue size = 5>box_plot_continue(ob, fo, member_list=None, vmax = None,vmin = None,save_path=None, show = False,dpi = 300,title="频率对比箱须图",sup_fontsize = 10,width = None,height = None)</font></strong><br />
分别绘制了观测和预报的频率箱须图,横坐标为"观测"、"预报",纵坐标为数据值, 箱须图包含了第一四分位数、中位数、第三四分位数与异常值(离群值)等不同等级。</p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>ob</font></strong></td>
<td style="text-align: left;">实况数据, 任意维numpy数组</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>fo</font></strong></td>
<td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td>
</tr>
<tr>
<td style="text-align: left;"><strong>member_list</strong></td>
<td style="text-align: left;">预报成员的名称列表</td>
</tr>
<tr>
<td style="text-align: left;"><strong>vmax</strong></td>
<td style="text-align: left;">绘图窗口y轴方向最大值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>vmin</strong></td>
<td style="text-align: left;">绘图窗口y轴方向最小值,通常在绘制单张图形时无需设置,在批量绘制多张该检验图时为了方便保持不同图片之间的可对比性,可以统一设置该参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片保存路径,缺省时不输出图片,而是以默认绘图窗口形式展示</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path 和save_dir 为都None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>dpi</strong></td>
<td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>title</strong></td>
<td style="text-align: left;">图片标题,缺省时 为“频率对比箱须图”</td>
</tr>
<tr>
<td style="text-align: left;"><strong>sup_fontsize</strong></td>
<td style="text-align: left;">图片标题的字体大小,其它字体将根据标题字体大小自动设置,其中坐标轴字体大小 = sup_fontsize × 0.9, 坐标刻度的字体大小 = sup_fontsize × 0.8</td>
</tr>
<tr>
<td style="text-align: left;"><strong>width</strong></td>
<td style="text-align: left;">图片的宽度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>height</strong></td>
<td style="text-align: left;">图片的高度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>return</font></strong></td>
<td style="text-align: left;">无返回结果</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">mem.box_plot_continue(ob,fo2,member_list = fo_name_list,
save_path =r&quot;H:\test_data\output\method\continue\boxplot.png&quot;,show = True)</code></pre>
<pre><code>检验结果已以图片形式保存至H:\test_data\output\method\continue\boxplot.png</code></pre>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/418b5d442b34b924c81a094340bb0495?showdoc=.jpg" alt="" /></p>
<h1>泰勒图</h1>
<p><strong><font face="黑体" color=blue size = 5>taylor_diagram(ob, fo,member_list=None, save_path=None,show = False,dpi = 300, title="",
sup_fontsize =10,width = None,height = None)</font></strong><br />
根据输入的观测预报数据绘制泰勒图,其中可以同时展示观测数据的标准差,预报数据的标准差,rmse,和相关系数</p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>ob</font></strong></td>
<td style="text-align: left;">实况数据, 任意维numpy数组</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>fo</font></strong></td>
<td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td>
</tr>
<tr>
<td style="text-align: left;"><strong>member_list</strong></td>
<td style="text-align: left;">预报成员的名称列表</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片保存路径,缺省时不输出图片,而是以默认绘图窗口形式展示</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path 和save_dir 为都None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>dpi</strong></td>
<td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>title</strong></td>
<td style="text-align: left;">图片标题,缺省时 为“频率对比箱须图”</td>
</tr>
<tr>
<td style="text-align: left;"><strong>sup_fontsize</strong></td>
<td style="text-align: left;">图片标题的字体大小,其它字体将根据标题字体大小自动设置,其中坐标轴字体大小 = sup_fontsize <em> 0.9, 坐标刻度的字体大小 = sup_fontsize </em> 0.8</td>
</tr>
<tr>
<td style="text-align: left;"><strong>width</strong></td>
<td style="text-align: left;">图片的宽度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>height</strong></td>
<td style="text-align: left;">图片的高度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>return</font></strong></td>
<td style="text-align: left;">无返回结果</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">list1 = np.random.rand(200).tolist()
list1.append(2) #为了展示图像效果,增加一个离群数据点
ob = np.array(list1)*3 #建立观测数据
fo3 =np.array([ob +0.1* np.random.randn(201),
ob + np.random.randn(201) * 0.6,
ob + np.random.randn(201) *0.8,
ob + np.random.randn(201) * 1]) #构造一个比ob多一维的数组存储多家预报
fo_name_list = [&quot;ECMWF&quot;,&quot;NCEP&quot;,&quot;SCMOC&quot;,&quot;GRAPES&quot;]</code></pre>
<pre><code class="language-python">mem.taylor_diagram(ob,fo3,member_list = fo_name_list)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/06e2f55945ea1361a097399c9426c7a7" alt="" /></p>
<p>以上面的图为例,对泰勒图形样式说明如下:</p>
<ul>
<li>该图形的基本坐标是极坐标系,其中半径r代表观测或预报数据自身的标准差。</li>
<li>蓝色圆点以及圆弧对应的半径代表的是个观测数据自身的标准差,其它颜色的点对应预报。</li>
<li>圆弧角度代表预报和观测的相关系数,但两种关系不是线性的,具体相关系数值可根据图中蓝色射线(点划线)以及最外圈圆弧上的刻度值来确定</li>
<li>绿色圆弧线(虚线)代表围绕观测数据的同心圆,它的半径代表预报数据的rmse</li>
</ul>
<pre><code class="language-python"></code></pre>
<h1>降水量随强度的变化图</h1>
<p><strong><font face="黑体" color=blue size = 5> accumulation_change_with_strength(ob,fo,member_list = None,save_path=None, show = False,dpi = 300,title="降水量随强度变化图", sup_fontsize = 14,width = None,height = None,log_y = False,max_x = None)</font></strong><br />
根据输入的观测预报数据绘累计降水量随降水强度(逐1mm间隔)的变化</p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>ob</font></strong></td>
<td style="text-align: left;">实况数据, 任意维numpy数组</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>fo</font></strong></td>
<td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td>
</tr>
<tr>
<td style="text-align: left;"><strong>member_list</strong></td>
<td style="text-align: left;">预报成员的名称列表</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片保存路径,缺省时不输出图片,而是以默认绘图窗口形式展示</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path 和save_dir 为都None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>dpi</strong></td>
<td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>title</strong></td>
<td style="text-align: left;">图片标题,缺省时 为“降水量随强度变化图”</td>
</tr>
<tr>
<td style="text-align: left;"><strong>sup_fontsize</strong></td>
<td style="text-align: left;">图片标题的字体大小,其它字体将根据标题字体大小自动设置,其中坐标轴字体大小 = sup_fontsize <em> 0.9, 坐标刻度的字体大小 = sup_fontsize </em> 0.8</td>
</tr>
<tr>
<td style="text-align: left;"><strong>width</strong></td>
<td style="text-align: left;">图片的宽度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>height</strong></td>
<td style="text-align: left;">图片的高度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>log_y</strong></td>
<td style="text-align: left;">y轴是否采用对数坐标</td>
</tr>
<tr>
<td style="text-align: left;"><strong>max_x</strong></td>
<td style="text-align: left;">该参数不为None时,X轴坐标保留[0,max_x]的范围</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>return</font></strong></td>
<td style="text-align: left;">(n+1)×m的矩阵,其中n为预报种类数,m为最大降水量(保留整数),第一列为观测的统计值,第二列开始为预报的统计值序列</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">path = r&quot;H:\test_data\input\mem\rain01.h5&quot;
rain01 = pd.read_hdf(path)
print(rain01)</code></pre>
<pre><code> level time dtime id lon lat ob RUC
122326 0 2022-05-06 08:00:00 1 57909 105.82 24.98 0.0 0.0
122338 0 2022-05-06 08:00:00 1 57927 107.18 24.97 0.0 0.0
122345 0 2022-05-06 08:00:00 1 57949 110.00 24.98 0.0 0.0
122758 0 2022-05-06 08:00:00 1 59001 105.33 24.78 0.0 0.0
122759 0 2022-05-06 08:00:00 1 59004 105.10 24.50 0.0 0.0
... ... ... ... ... ... ... ... ...
788374 0 2022-05-17 20:00:00 24 59673 112.77 21.73 0.0 0.0
788375 0 2022-05-17 20:00:00 24 59750 110.07 20.97 0.0 0.0
788376 0 2022-05-17 20:00:00 24 59754 110.18 20.33 0.0 0.0
788377 0 2022-05-17 20:00:00 24 59757 110.37 20.00 0.0 0.0
788378 0 2022-05-17 20:00:00 24 59758 110.25 20.00 0.0 0.0
[104832 rows x 8 columns]</code></pre>
<pre><code class="language-python">ob = rain01[&quot;ob&quot;].values
fo = rain01[&quot;RUC&quot;].values</code></pre>
<pre><code class="language-python">result = mem.accumulation_change_with_strenght(ob,fo,log_y = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=dc7b48c0d8c50588275a5bbf6af75289" alt="" /></p>
<pre><code class="language-python">print(result.shape)</code></pre>
<pre><code>(2, 97)</code></pre>
<h1>降水频次随强度的变化图</h1>
<p><strong><font face="黑体" color=blue size = 5> frequency_change_with_strength(ob,fo,member_list = None,save_path=None, show = False,dpi = 300,title="降水频次随强度变化图", sup_fontsize = 14,width = None,height = None,log_y = False,max_x = None,color_list = None,linestyle = None,smooth = None)</font></strong><br />
根据输入的观测预报数据绘累计降水频次随降水强度(逐1mm间隔)的变化</p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>ob</font></strong></td>
<td style="text-align: left;">实况数据, 任意维numpy数组</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>fo</font></strong></td>
<td style="text-align: left;">预测数据, 任意维numpy数组,Fo.shape 比Ob.shape多一维或者保持一致,Fo.shape低维与ob.shape保持一致</td>
</tr>
<tr>
<td style="text-align: left;"><strong>member_list</strong></td>
<td style="text-align: left;">预报成员的名称列表</td>
</tr>
<tr>
<td style="text-align: left;"><strong>save_path</strong></td>
<td style="text-align: left;">图片保存路径,缺省时不输出图片,而是以默认绘图窗口形式展示</td>
</tr>
<tr>
<td style="text-align: left;"><strong>show</strong></td>
<td style="text-align: left;">是否在屏幕显示图片,如果save_path 和save_dir 为都None时,程序内部会自动将show设置True</td>
</tr>
<tr>
<td style="text-align: left;"><strong>dpi</strong></td>
<td style="text-align: left;">绘图所采用dpi参数,效果同matplotlib中dpi参数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>title</strong></td>
<td style="text-align: left;">图片标题,缺省时 为“降水量随强度变化图”</td>
</tr>
<tr>
<td style="text-align: left;"><strong>sup_fontsize</strong></td>
<td style="text-align: left;">图片标题的字体大小,其它字体将根据标题字体大小自动设置,其中坐标轴字体大小 = sup_fontsize <em> 0.9, 坐标刻度的字体大小 = sup_fontsize </em> 0.8</td>
</tr>
<tr>
<td style="text-align: left;"><strong>width</strong></td>
<td style="text-align: left;">图片的宽度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>height</strong></td>
<td style="text-align: left;">图片的高度,缺省时程序自动设置</td>
</tr>
<tr>
<td style="text-align: left;"><strong>log_y</strong></td>
<td style="text-align: left;">y轴是否采用对数坐标</td>
</tr>
<tr>
<td style="text-align: left;"><strong>max_x</strong></td>
<td style="text-align: left;">该参数不为None时,X轴坐标保留[0,max_x]的范围</td>
</tr>
<tr>
<td style="text-align: left;"><strong>color_list</strong></td>
<td style="text-align: left;">每根折线的颜色</td>
</tr>
<tr>
<td style="text-align: left;"><strong>linestyle</strong></td>
<td style="text-align: left;">每根折线的线型</td>
</tr>
<tr>
<td style="text-align: left;"><strong>smooth</strong></td>
<td style="text-align: left;">是否对折线进行平滑</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size=5>return</font></strong></td>
<td style="text-align: left;">(n+1)×m的矩阵,其中n为预报种类数,m为最大降水量(保留整数),第一列为观测的统计值,第二列开始为预报的统计值序列</td>
</tr>
</tbody>
</table>
<p><strong>调用示例:</strong></p>
<pre><code class="language-python">result = mem.frequency_change_with_strenght(ob,fo,log_y = True)</code></pre>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=d6be276cc8dc9a1872d556402e128a20" alt="" /></p>