How do I draw contour?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
민제 강
el 2 de Jun. de 2021
Comentada: 민제 강
el 3 de Jun. de 2021
I want to draw a contour for the difference between Y and kriging in Sample.xlsx
Red if the error is big. Blue if the error is small.
As shown in the picture
0 comentarios
Respuesta aceptada
Walter Roberson
el 2 de Jun. de 2021
Editada: Walter Roberson
el 2 de Jun. de 2021
data = readtable('https://www.mathworks.com/matlabcentral/answers/uploaded_files/639450/Sample.xlsx');
ux1 = unique(data.x1);
nx1 = length(ux1);
X1 = reshape(data.x1, [], nx1);
X2 = reshape(data.x2, [], nx1);
Y = reshape(data.Y, [], nx1);
K = reshape(data.Kriging, [], nx1);
kerr = Y - K;
contourf(X1, X2, abs(kerr), 20);
colormap turbo
xlabel('x1')
ylabel('x2')
title('kriging absolute err')
colorbar
You could interpolate to get a smoother looking plot.
N = 200;
F = griddedInterpolant(X1.', X2.', kerr.'); %must be ndgrid format
x1q = linspace(ux1(1), ux1(end), N);
x2q = linspace(min(data.x2), max(data.x2), N+1);
[X1Q, X2Q] = ndgrid(x1q, x2q);
KQ = F(X1Q, X2Q);
%contourf(X1Q, X2Q, abs(KQ), 20)
h = pcolor(X1Q, X2Q, abs(KQ));
h.EdgeColor = 'none';
colormap turbo
xlabel('x1 smoothed')
ylabel('x2 smoothed')
title('smoothed kriging absolute error')
I am not sure where the bright lines are coming from; it is likely to be an artifact as the number of boxes looks to be 1 less than the number of original values in each direction.
Más respuestas (0)
Ver también
Categorías
Más información sobre Contour Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!