How do I draw contour?

1 次查看(过去 30 天)
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

采纳的回答

Walter Roberson
Walter Roberson 2021-6-2
编辑:Walter Roberson 2021-6-2
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.
  2 个评论
민제 강
민제 강 2021-6-3
Thank you so much.
I have one more question.
When I put in other experimental values, the right bar (level) value is changed.
Can we fix it?
민제 강
민제 강 2021-6-3
I found! caxis :)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Contour Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by