Contour plots for random variables

6 views (last 30 days)
soheil radfar
soheil radfar on 3 Jan 2020
Commented: soheil radfar on 4 Jan 2020
Hi everybody,
I am trying to plot contours for variable "T". T itself is a function of X and Y. Below is my code, which is clearly wrong!
clc
clear all
X = gevrnd(-0.4176,0.6703,1.4837,100000,1); %X follows GEV distribution
Y = gprnd(-0.0960,0.2152,1.7001,100000,1); %Y follows GPD distribution
U = cdf('generalized extreme value',X,-0.4176,0.6703,1.4837);
V = cdf('Generalized Pareto',Y,-0.0960,0.2152,1.7001);
C = exp(1-((((1-log(U)).^0.9838-1).^1.0075+((1-log(V)).^0.9838-1).^1.0075).^0.9926+1).^1.0165); % Copula
% Return period: T = mu / (1+C-U-V)
mu = 0.08;
T = @(U,V) mu./(1+C-U-V);
fc = fcontour(T,U,V)
fc.LevelList = [1 5 10 25]; %Joint contours for T = 1; 5; 10 and 25 years
How shouhd I do this?

Answers (1)

per isakson
per isakson on 3 Jan 2020
Edited: per isakson on 3 Jan 2020
The documentation on fcontour, Plot contours says:
Specify a function of the form z = f(x,y). The function must accept two matrix input arguments and return a matrix output argument of the same size.
The vector C is the problem
>> T = @(U,V) mu./(1-U-V);
>> fcontour( T, [2.5,3.5,1.8,3.2] )
produces a plot without throwing an error.
Try this script
%%
Z = T(U,V);
Finterp = scatteredInterpolant( X, Y, Z );
xmin = 2.5; % min(X);
xmax = 3.5; % max(X);
ymin = min(Y);
ymax = max(Y);
N = 1000;
xrange = linspace(xmin, xmax, N);
yrange = linspace(ymin, ymax, N);
[XGrid, YGrid] = meshgrid(xrange, yrange);
ZGrid = Finterp(XGrid, YGrid);
contourf(XGrid, YGrid, ZGrid);
xlabel('X');
ylabel('Y');
zlabel('T');
ZGrid and pieces thereof may also be displayed as an image
imagesc(ZGrid(1:100,:))
Replace
contourf(XGrid, YGrid, ZGrid);
by
contourf( XGrid, YGrid, ZGrid, 64 );
to get a higher resolution in ZGrid
  1 Comment
soheil radfar
soheil radfar on 4 Jan 2020
Hi
This does not help me.
I wanna plot something like below figure.
Capture.JPG

Sign in to comment.

Categories

Find more on Visual Exploration in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!