流量历时曲线是水文(和其他领域)可视化时间序列的常用方法。它们可以方便地评估时间序列中的高值和低值,以及达到特定值的频率。在Python中有没有一种简单的方法来绘制它?我找不到任何matplotlib工具,这将允许它。此外,似乎没有其他软件包包括它,至少不可能轻松绘制一系列流量-历时曲线。在
关于如何创建它的一般解释如下: http://www.renewablesfirst.co.uk/hydropower/hydropower-learning-centre/what-is-a-flow-duration-curve/
因此,流量历时曲线的基本计算和绘制非常简单。只需计算超额并根据排序的时间序列绘制它(参见ImportanceOfBeingErnest的答案)。但是如果你有几个时间序列,并且想要绘制所有超过概率值的范围,这就变得更加困难了。我在回答这个问题时提出了一个解决方案,但很高兴听到更优雅的解决方案。我的解决方案还包含了一个简单的子图使用,因为对于不同的位置有几个时间序列是很常见的,这些时间序列必须分开绘制。在
在这里你可以看到三条截然不同的曲线。黑线是来自河流的测量值,而两个阴影区域是这两个模型的所有模型运行的范围。那么,计算和绘制多个时间序列的流量历时曲线最简单的方法是什么?在
编辑:由于我的第一个答案过于复杂和不合理,我重新编写了它,以纳入重要的Beingernest的解决方案。我仍然将新版本与ImportanceOfBeingErnest的新版本放在一起,因为我认为附加的功能可能会使其他人更容易为他们的时间序列绘制流持续时间曲线。如果有人有其他想法,请参阅:Github Repository
其特点是:
更改量程流量持续时间曲线的百分位数
作为独立图形或子图使用方便。如果提供了子批次对象,则在此对象中绘制流量持续时间曲线。如果没有提供,它将创建一个并返回它
距离曲线的独立kwargs及其比较
使用关键字将y轴更改为对数刻度
有助于理解其用法的扩展示例。
代码如下:
使用方法:
^{pr2}$结果如下:
如果我正确地理解了流量持续时间曲线的概念,你只要把流量描绘成超限的函数。在
从这个你可以很容易地看出,在60%的时间内,流量预计为11或更大。在
如果有几个数据集,可以使用
fill_between
将它们绘制为一个范围。 ^{pr2}$相关问题 更多 >
编程相关推荐