Voor mijn scriptie wil ik in Matlab een plot maken bestaande uit een (x,y,z)-array van stroomsnelheden van bovenaf bekeken met daarin contourlijnen.
Hiervoor heb ik een script geschreven, zie hieronder. Het script haalt uit een matrix de stroomsnelheden op een bepaald tijdstip T. Vervolgens wordt een plot gemaakt die van bovenaf wordt bekeken. De contourlijnen staan echter op hoogte z=0 en worden bedekt door de colormap van de surf functie wanneer deze boven z=0 uitkomt. Wat ik wil is dat de tekst en waardes van de contourplot altijd zichtbaar zijn. Ik heb het al deels opgelost door de plot van de surf functie semi-transparant te maken, maar dat is niet echt een nette oplossing.
Is er een mogelijkheid om de z-waarde van de contour plot op een andere hoogte te plotten?
Of gebruik ik de verkeerde functies?
(nb. met de functie contour3 lukt het ook niet, dan worden de contourlijnen op hun respectievelijke hoogte geplot en dat levert hetzelfde probleem op)
edit: sorry voor mijn wat vage topictitel, ik wilde deze nog veranderen, maar dat kan je dus blijkbaar niet zelf
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);
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
Hiervoor heb ik een script geschreven, zie hieronder. Het script haalt uit een matrix de stroomsnelheden op een bepaald tijdstip T. Vervolgens wordt een plot gemaakt die van bovenaf wordt bekeken. De contourlijnen staan echter op hoogte z=0 en worden bedekt door de colormap van de surf functie wanneer deze boven z=0 uitkomt. Wat ik wil is dat de tekst en waardes van de contourplot altijd zichtbaar zijn. Ik heb het al deels opgelost door de plot van de surf functie semi-transparant te maken, maar dat is niet echt een nette oplossing.
Is er een mogelijkheid om de z-waarde van de contour plot op een andere hoogte te plotten?
Of gebruik ik de verkeerde functies?
(nb. met de functie contour3 lukt het ook niet, dan worden de contourlijnen op hun respectievelijke hoogte geplot en dat levert hetzelfde probleem op)
edit: sorry voor mijn wat vage topictitel, ik wilde deze nog veranderen, maar dat kan je dus blijkbaar niet zelf
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);
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
[ Voor 5% gewijzigd door wph op 11-12-2012 17:54 ]