在科研学习中,常看到一系列垂直正态分布图,那么应当如何实现呢?
(图形出自论文J2015-Using a Bayesian Probabilistic Forecasting Model to Analyze the Uncertainty in Real-Time Dynamic Control of the Flood Limiting Water Level for Reservoir Operation)
在网上到处搜,也没有找到答案,最后试着解决了这个问题。
1 案例
根据输入,可得到图形如下:
需要注意的是,当数据分布不均匀时,正态分布密度曲线的高度并不一一相等,因而此处进行了一定的人为拉伸,将所有图形的高度控制为相同高度。
2 制图思路
部分代码:
clc
close all
clear
%% 导入数据
% 说明:导入需要绘图的数据,为便于说明,此处随机生成数据
% load('X.mat');
X = 100*rand(2000,10);
nSample = length( X(:,1) );
nVariable = length( X(1,:) );
%% 置信区间:计算均值、方差
% 置信区间下限:a=M-n*ST
% 置信区间上限:a=M+n*ST
% 当求取90% 置信区间时 a=0.01 n=1.645
% 当求取95% 置信区间时 a=0.05 n=1.96
% 当求取99% 置信区间时 a=0.1 n=2.576
a = 0.05;
if a==0.01
n = 2.576;
elseif a==0.05
n = 1.96;
elseif a==0.1
n = 1.645;
end
绘图结果:(因数据为随机生成的正态分布,波动性不大)
图形说明:蓝色阴影为95%置信区间;黑色直线为均值线。
3 代码获取链接
MATLAB绘制垂直正态分布密度曲线
若需获取/有问题可私信
重点:利用MATLAB实现了一系列垂直正态分布密度曲线的绘制!
参考
此外,附上一些我搜索过程中出现过尝试解决相同问题的文章。
1-Plot vertical density of normal distribution in R and ggplot2
2-直立的正态分布曲线图的四种作法