Plot red lines on a contourf plot
20 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi everybody, I am trying to create rectangles to identify some areas within a contourf plot. For the moment being, I thought of creating lines between points in the space.
I am not getting the result wanted, I only get 2 lines which I assume are represented because they are just on the rims of the contourf plot. How do I get all of them to be represented in the plot?
I attach the code hereby:
x1=[0.4:2.5:97.9,99.9];
y2=[7.9:-1.5:0.4];
y1=y2';
[X1,Y1] = meshgrid (x1,y1);
%-------
HV_NDTD1=[466, 468, 440, 463, 463, 480, 444, 463, 454, 446, 468, 448, 463, 461, 457, 452, 477, 440, 448, 463, 466, 480, 477, 459, 457, 455, 444, 448, 461, 442, 452, 435, 448, 444, 470, 463, 461, 457, 463, 459, 450;
452, 487, 475, 470, 457, 487, 468, 475, 497, 461, 475, 463, 494, 435, 472, 487, 444, 468, 472, 450, 470, 450, 470, 461, 461, 448, 463, 457, 463, 480, 457, 457, 463, 468, 466, 492, 459, 472, 455, 475, 472;
418, 442, 429, 412, 404, 410, 403, 423, 427, 418, 427, 438, 461, 446, 442, 448, 435, 440, 437, 431, 448, 431, 433, 455, 431, 472, 435, 444, 470, 446, 484, 442, 448, 450, 477, 446, 468, 459, 477, 452, 470;
408, 394, 394, 399, 418, 416, 392, 403, 423, 425, 406, 414, 406, 435, 425, 435, 431, 446, 427, 454, 406, 448, 429, 438, 448, 454, 446, 444, 450, 446, 466, 440, 420, 461, 425, 448, 466, 459, 452, 468, 461;
423, 423, 442, 431, 404, 412, 418, 406, 397, 446, 454, 448, 433, 442, 466, 461, 461, 450, 440, 440, 440, 452, 457, 452, 440, 448, 468, 475, 440, 461, 448, 463, 466, 444, 455, 475, 440, 452, 442, 433, 463;
410, 403, 480, 468, 440, 442, 446, 446, 452, 410, 431, 457, 468, 454, 450, 470, 431, 423, 470, 459, 454, 435, 455, 461, 457, 459, 468, 470, 468, 466, 468, 461, 461, 468, 477, 487, 457, 468, 475, 463, 452;];
%------
xLINE1=[35.3 99.9];
yLINE1=[0.4 0.4];
xLINE2=[35.3 99.9];
yLINE2=[3.3 3.3];
xLINE3=[40.3 99.9];
yLINE3=[5 5];
xLINE4=[40.3 99.9];
yLINE4=[7.9 7.9];
xLINE5=[35.3 35.3];
yLINE5=[0.4 3.3];
xLINE6=[40.3 40.3];
yLINE6=[0.4 3.3];
%---------
figure(3);
plot(xLINE1,yLINE1,'r-','linewidth',6)
hold on;
plot(xLINE2,yLINE2,'r-','linewidth',6)
plot(xLINE3,yLINE3,'r-','linewidth',6)
plot(xLINE4,yLINE4,'r-','linewidth',6)
plot(xLINE5,yLINE5,'r-','linewidth',6)
plot(xLINE6,yLINE6,'r-','linewidth',6)
contourf(X1,Y1,HV_NDTD1)
colormap(parula(32))
colorbar
hold off;
xlabel('Distance (mm)','FontSize',16)
ylabel('Distance (mm)','FontSize',16)
title('W80 Plate ND/TD Bar Hardness Map (facing encapsulated samples)','FontSize',22,'FontWeight','bold')
set(gca,'fontsize',24,'fontweight','bold','linewidth',3);
x1 = [.8,.775];
y1 = [0.965,0.935];
a = annotation('textarrow',x1,y1,'String','Front RD/TD-surface','fontweight','bold');
a.Color = 'red';
a.FontSize = 20;
x1 = [.1,.125];
y1 = [0.85,0.775];
a = annotation('textarrow',x1,y1,'String','Crizzled side','fontweight','bold');
a.Color = 'red';
a.FontSize = 20;
0 commentaires
Réponses (1)
Geoff Hayes
le 31 Juil 2016
uCiucani - try drawing the red lines after you have created the contour plot as
contourf(X1,Y1,HV_NDTD1)
hold on;
plot(xLINE1,yLINE1,'r-','linewidth',6)
plot(xLINE2,yLINE2,'r-','linewidth',6)
plot(xLINE3,yLINE3,'r-','linewidth',6)
plot(xLINE4,yLINE4,'r-','linewidth',6)
plot(xLINE5,yLINE5,'r-','linewidth',6)
plot(xLINE6,yLINE6,'r-','linewidth',6)
Or, better, is to use uistack to re-order the visual stacking order of the graphics objects. In this case, you would "put" the contour plot at the bottom of the stack
figure(3);
hold on;
plot(xLINE1,yLINE1,'r-','linewidth',6)
plot(xLINE2,yLINE2,'r-','linewidth',6)
plot(xLINE3,yLINE3,'r-','linewidth',6)
plot(xLINE4,yLINE4,'r-','linewidth',6)
plot(xLINE5,yLINE5,'r-','linewidth',6)
plot(xLINE6,yLINE6,'r-','linewidth',6)
[~, hCP] = contourf(X1,Y1,HV_NDTD1);
uistack(hCP,'bottom');
Try the above and see what happens!
Voir également
Catégories
En savoir plus sur Red dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!