I want to plot an array in top down view and have contour lines (with labels) above the colormap. Now the colormap is placed over the contour lines for some values, because the contour plot is at z=0 and some values in the array larger than z=0. When I set FaceAlpha to 0.5 the contour lines are somewhat visible, but this isn't exactly an elegant solution.
Does somebody have a good solution?
This is the code I use:
clear all; close all; clc; data=importdata('depth averaged velocity 2010 referentie.mat'); [tt,m,n]=size(data.XComp); T = input('Choose Timepoint T:'); zx=data.XComp(T,:,:); % picks flow velocity at t=T from flow velocity matrix zy=data.YComp(T,:,:); zx=reshape(zx,m,n); % zx isn't plotted in this script zy=reshape(zy,m,n); hold on surf(data.X,data.Y,zy,'FaceAlpha',0.5); view(2); shading flat colormap(flipud(colormap)); [c,h]=contour(data.X,data.Y,zy,'k',); clabel(c,h); hold off
You have a typo at this line:
Change it to
If you need better resolution for the contourmap, you need to use, meshgrid() for your data.X and data.Y and use finer grids! I mean if you are having
data.X = linspace(-1,1,100);
Change it to
data.X = linspace(-1,1,200);
which has more points and creates a finer mesh.
You would also want to swap these the two lines of contour and colormap, use
... [c,h]=contour(data.X,data.Y,zy,'k',); colormap(flipud(colormap)); ...