teechart绘制实时曲线_关于PIII曲线
function HessianProbabilityGrid(dataArray, estCv, estCsDivCv) % 控制Y轴坐标上限 MAX_Y = max(dataArray); MAX_Y = ceil(MAX_Y / 10^floor(log10(MAX_Y))) * 10^floor(log10(MAX_Y)); % 定义坐标函数 axisProb = [0.001, 0.01:0.01:0.1, 0.2:0.1:1, 1.2:0.2:2, 3:1:20, 22:2:80, 81:1:98, 98.2:0.2:99, 99.1:0.1:99.9]; %横坐标的值 axisX = norminv(axisProb / 100, 0, 1); axisX = axisX - axisX(1); % 纵向划分线 xLabel = [0.001 0.01 0.1 0.2 0.333 0.5 1 2 3 5 10 20 25 30 40 50 60 70 75 80 85 90 95 97 99 99.9 100]; xTick = norminv(xLabel / 100, 0, 1); xTick = xTick - xTick(1); for i = 1:1:size(xTick, 2) line([xTick(i), xTick(i)], [0, MAX_Y]); end % 横向划分线 for i = MAX_Y / 10:MAX_Y / 10:MAX_Y line([0, axisX(end)], [i, i]); end % 绘制坐标格纸 h = findobj('type', 'axes'); % 去掉x,y轴的刻度,并设置x,y轴的上下界 set(h, 'xtick', [], 'ytick', [], 'xlim', [0, axisX(end)], 'ylim', [0, MAX_Y]); % 横坐标的值 xLabel = [0.001 0.01 0.1 0.2 0.333 0.5 1 2 3 5 10 20 25 30 40 50 60 70 75 80 85 90 95 97 99 99.9 100]; xTick = norminv(xLabel / 100, 0, 1); xTick = xTick - xTick(1); % 重新设置坐标轴的刻度 set(h, 'Xtick', xTick); set(h, 'XticklabeL', {0.001 0.01 0.1 0.2 0.3 0.5 1 2 3 5 10 20 25 30 40 50 60 70 75 80 85 90 95 97 99 99.9 100}); set(h, 'Ytick', 0:MAX_Y / 10:MAX_Y); set(h, 'YticklabeL', {0:MAX_Y / 10:MAX_Y}); % 对x,y轴进行标注 xlabel('P(%)'); ylabel('Qm(m^3/s)'); hold on; % 原始数据处理 sortedData = sort(dataArray, 'descend'); % 排序后的数据 EX = mean(dataArray); expProb = [1:length(sortedData)] / (length(sortedData) + 1); % 实际数据横坐标的值 dataX = norminv(expProb, 0, 1); dataX = dataX - norminv(0.00001, 0, 1); % 绘制实际数据散点图 scatter(dataX, sortedData, 'k'); hold on; % 绘制理论曲线 estCs = estCsDivCv * estCv; % 估计的P-III型曲线参数 P3_alpha = 4 / estCs^2; P3_beta = 2 / (EX * estCv * estCs); P3_a0 = EX * (1 - 2 * estCv / estCs); % 估计的gamma函数参数 gamma_alpha = P3_alpha; gamma_beta = 1 / P3_beta; theoryY = gaminv((100 - xLabel) / 100, gamma_alpha, gamma_beta) + P3_a0; % 注意超过制概率和不及制概率 plot(xTick, theoryY, 'k'); hold on; % grid on;end
Python版
# -*- coding: utf-8 -*-import matplotlib.pyplot as pltimport numpy as npimport probscaleimport mathfrom scipy.stats import pearson3#plt.rcParams['font.sans-serif'] = ['Sarasa Gothic CL']plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'def p3ProbScatter(data, yLogScale=False, probLeftLim=0.1, probRightLim=99.9, show=False): """ 该函数用于绘制水文数据的散点图 data 输入的原始水文数据,建议使用np.array类 yLogScale=False y轴是否对数化显示,默认关闭 probLeftLim=0.1 x轴,概率起始点,默认为0.1% probRightLim=99.9 x轴,概率结束点,默认为99.9% show=False 是否立即显示,默认不显示 fig, ax 返回图形和坐标轴对象 """ # 创建单幅 fig, ax = plt.subplots() # 自适应Y轴上限,最高位向上取整 MAX_Y = max(data) MAX_Y = math.ceil(MAX_Y / 10 ** math.floor(math.log10(MAX_Y)) ) * 10 ** math.floor(math.log10(MAX_Y)) # 设置y轴的范围,以及是否对数化显示 ax.set_ylim(0, MAX_Y) if yLogScale == True: ax.set_yscale('log') # 设置x轴的范围,参数应该直接为百分数 # 比如50%,直接传入50 ax.set_xlim(probLeftLim, probRightLim) ax.set_xscale('prob') # 对数据进行降序排序,并计算经验频率 sortedData = np.sort(data)[::-1] expProb = np.arange(1, len(sortedData) + 1) / (len(sortedData)+1) * 100 # 绘制散点图 plt.scatter(expProb, sortedData, label='经验概率点') if show == True: plt.show() # 返回图像,轴 return fig, axdef p3Stat(data): """ 该函数用于统计数据的数学期望Ex,变差系数Cv,偏态系数Cs """ # 数学期望 Ex = np.average(data) # 模比系数 K = data / Ex # 变差系数 Cv = np.sqrt(np.sum((K-1)**2) / (len(data) - 1)) # 偏态系数 Cs = np.sum((K - 1)**3)/((len(data) - 3) * Cv**3) return Ex, Cv, Csdef p3ProbPlot(Ex, Cv, Cs, show=False): """ 该函数用于绘制P3曲线 Ex 曲线的数学期望 Cv 曲线的变差系数 Cs 曲线的偏态系数 show=False 是否显示图像,默认不显示 """ # 获取理论曲线的控制点 x = np.linspace(0.1, 99.9, 1000) theoryY = (pearson3.ppf(1 - x / 100, Cs) * Cv + 1) * Ex # 绘制理论曲线 plt.plot(x, theoryY, 'r-', lw=2, label='理论频率曲线') plt.legend() if show == True: plt.show()# 测试例子data = np.array([778, 752, 709, 697, 650, 649, 644, 642, 623, 616, 612, 605, 575, 573, 558, 551, 541, 526, 526, 521, 519, 510, 508, 506, 494, 486, 480, 477, 472, 461, 442, 420, 415, 410, 398, 395, 382, 379, 376, 370, 368, 359, 350, 349, 341, 337, 336, 315, 315, 292])statResult = p3Stat(data)print(statResult)p3ProbScatter(data)p3ProbPlot(statResult[0], statResult[1], 2 * statResult[1])plt.grid(True)plt.show()
将借鉴此版MATLAB此版P-III曲线绘图函数及自己以前的部分成果,最近计划利用MATLAB App Designer设计基于MATLAB App Designer的P-III曲线绘图系统,此版:仅为绘图系统,不包含经验点的计算;包含Ex、Cv、Cs的自由步长设置及微调;暂时不包含参数优化内容。目前已经取得一些进展。余下的工作将会在以后几个月的业余时间完成。
teechart绘制实时曲线_关于PIII曲线相关推荐
- python如何画贝塞尔曲线_初识贝塞尔曲线
贝塞尔曲线在CSS动画中和canvas.svg绘图中都是比较重要的一个东西!所以我来好好的小结一下关于它的一些东西. 什么是贝塞尔曲线 贝塞尔曲线于1962,由法国工程师皮埃尔·贝塞尔(Pierre ...
- lisp 非对称缓和曲线_非对称缓和曲线放样计算程序清单(for Casio-fx4850)
编制:苏畅 根据他人程序结合本人实际运用修改,十分好用.上传与大家分享 非对称缓和曲线放样计算程序清单 (for Casio-fx4850) 扩展变量操作(15个):Defm 15←┚( O为字母 ...
- teechart绘制实时曲线_快速学会CAD绘制传输线路图纸
一工具 CAD工程设计软件 二方法和步骤 万事开头难,遇到不懂的知识刚开始都有畏难的情绪,只要有决心学习,诚心想学会一项技能,那学会学好它就只是时间问题了.我们常常面临时间紧.需要快速入门甚至熟练地解 ...
- teechart绘制实时曲线_基于OpenCV的显著图绘制
显着性是图像的突出部分,我们的大脑会特别关注这个部分.上图突出了我们在看到一个场景或图像时会注意到的部分.例如,大家有没有曾经在看广告的时候被一些特别的内容吸引,为此我们还特意停下来多看了一会儿?这就 ...
- 使用keras绘制实时的loss与acc曲线
废话不多说,直接上代码,代码有注释,不懂得评论问博主即可 # -*- coding: utf-8 -*- import keras from keras.models import Sequentia ...
- 边际效用递减推导需求曲线_软件需求曲线
边际效用递减推导需求曲线 回到我将经济学工具应用于软件开发的系列文章– 软件开发中的 供需,一段时间内的 软件供应和软件供求–这次是敏捷 –是时候将我们的注意力转向需求曲线了. 首先提醒人们事情是如何 ...
- lisp 非对称缓和曲线_利用AutoLISP语言绘制带缓和曲线的铁路曲线平面图
利用 AutoLISP 语言绘制带缓和曲线的铁路曲线平面图 [ 摘要 ] 通过 AutoLISP 编程方法的剖析 , 探讨了基于 Visual LISP(VLISP) 编程软件环境下 , 利用 Aut ...
- python绘制缓和曲线_在cad中画缓和曲线的绘制方法
缓和曲线具有以下作用:曲率连续变化,便于车辆遵循:离心加速度逐渐变化,旅客感觉舒适:超高横坡度及加宽逐渐变化,行车更加稳定:与圆曲线配合,增加线形美观.故,缓和曲线在公路.桥梁.铁路及高速铁路中广泛采 ...
- stata绘制roc曲线_[转载]光滑ROC曲线的画法
在科研统计中,有时候需要用ROC曲线来表示我们某一方法的诊断能力(或者说2分类能力),于是乎就涉及到了ROC曲线的绘制.大部分人还是会使用SPSS进行统计分析的,也有会使用SPSS绘制ROC曲线的童鞋 ...
最新文章
- c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)
- IBM X3650 M3服务器上RAID配置实战
- DevToys - 开发人员的瑞士军刀
- openwrt 遍译php_openwrt安装编译
- org.apache.catalina.loader.StandardClassLoader@1af33d6
- OSG仿真案例(8)——读取FBX格式文件并显示(无动画)
- 广义积分中值定理的证明(柯西中值定理)
- C语言ftell()函数
- 基于8086的中断方式4*4矩阵键盘
- python空格转义字符_python空格转义
- 信息化和信息系统知识点总结
- 如何写一个好的缺陷(Defect)报告
- 转发文章【我们是怎样一步步的走向平庸的】
- 集成电路光刻机精密运动台控制方法
- 这五本人气火爆的有声小说,能成为网络文学20年优秀有声作品吗?
- a或b search vim_vim入门,进阶与折腾
- 【图像处理】 均值滤波、中值滤波和高斯滤波
- BloomFilter
- 北京市政交通一卡通系统的应用情况研究
- 2022年全美最佳大学排名公布,看看谁是1400所里最好的大学!
热门文章
- [中英对照]The sysfs Filesystem | sysfs文件系统
- 05-if和switch的简单比较
- .DateTimeToStr函数专用优化版
- 解决“Automation 服务器不能创建对象”的问题!
- python的作用域分别有几种_python 作用域知识点整理
- 09:向量点积计算【一维数组】
- Python 3.6.x字符串格式化方法小结
- 详解Python中的位运算符规则、原理与用法
- 上下两个x轴_工业机器人到底有多少个“轴”?
- android中的 listview控件,聊聊Android中的ListView控件