Contour map fills outside data points

6 visualizzazioni (ultimi 30 giorni)
Nick
Nick il 9 Set 2013
Hello all,
I'm attempting to plot 3 vectors of data using contourf. So far, I am using the code below to generate the snap shot attached. As you can see, using this method creates a filled area above the data set as it tries to "connect the dots". Is there a way to prevent this from happening? That is, is it possible to only have the white space above the black line?
x = xData;
y = yData;
z = zData;
xlin = linspace(0,max(x),length(x));
ylin = linspace(0,max(y),length(y));
[X,Y] = meshgrid(xlin,ylin);
Z = griddata(x,y,z,X,Y);
figure
[~,~] = contourf(X,Y,Z);
colormap cool
colorbar
grid on
% Overlay Max Curve
x = xDataMaxSubset;
y = yDataMaxSubset;
hold on
plot(x,y,'LineWidth',2,'Color',[0 0 0])
hold off
% Overlay All pts
x = xData;
y = yData;
hold on
scatter(x,y,10)
hold off

Risposta accettata

Nick
Nick il 9 Set 2013
For anyone looking for a solution to a similar problem, this is the workaround I've settled on:
First create additional data points that are 1.1 times the x and y data max subset (just "outside" the original max subset), and fill the corresponding z points with NaN values. Add these x,y,and z pts to the original data sets to be plotted. This will at least prevent the area above the max line from being filled in, though it also makes the fill contour around the max line very choppy. To get around this, add in additional data points along the max line using interpolation until the contour plot looks acceptable.
Cheers!

Più risposte (0)

Categorie

Scopri di più su Contour Plots in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by