2017-06-03 1 views
0

Was soll ich in meinem Code ändern, dass countorf Regionen mit mehr Farbunterschieden zeigt?countourf zeigt keine farbigen Bereiche in Matlab

clear all; 
close all; 
phi=90; 
[xx,yy] = meshgrid(-20:0.1:20,-20:0.1:20); 
Idontwantthis = (xx.^2+yy.^2)<0.1; 
u = (xx./(xx.^2+yy.^2).^(3/2)); 
v = (yy./(xx.^2+yy.^2).^(3/2)); 
data= sqrt(u.^2+v.^2); 
data(Idontwantthis)=NaN; 
u(Idontwantthis)=NaN; 
v(Idontwantthis)=NaN; 
contourf(xx,yy,data,20); 
+0

Dieser Code ist nicht vollständig reproduzierbar. Veröffentlichen Sie den vollständigen Code, z. Wo setzt du 'x' und' y'? Haben Sie versucht, die Colormap zu ändern? – kedarps

+0

Sorry, Fertig. @kedarps –

+0

Probieren Sie 'contour' anstelle von' contourf'. – kedarps

Antwort

0

Erstens brauchen Sie nicht meshgrid über [-20 20]. Versuchen Sie, den Bereich auf [-2 2] zu reduzieren. Nachdem Sie contourf laufen, ändern colormap:

clear all; 
close all; 
phi=90; 

[xx,yy] = meshgrid(-2:0.01:2,-2:0.01:2); 

Idontwantthis = (xx.^2+yy.^2)<0.1; 
u = (xx./(xx.^2+yy.^2).^(3/2)); 
v = (yy./(xx.^2+yy.^2).^(3/2)); 
data= sqrt(u.^2+v.^2); 
data(Idontwantthis)=NaN; 
u(Idontwantthis)=NaN; 
v(Idontwantthis)=NaN; 

contourf(xx,yy,data,20); 
colormap hsv; 

Dies ist, was Ihr Ergebnis aussehen wird: contour plot with hsv colormap

Hoffnung, das hilft!

+0

Großartig! Vielen Dank. ++ –