2016-11-25 74 views
0

我有以下脚本特殊线宽:MATLAB如何画出轮廓与某些价值

close all; clear all; clc; 

x = linspace(-2*pi,2*pi); 

y = linspace(0,4*pi); 

[X,Y] = meshgrid(x,y); 

Z = sin(X)+cos(Y); 

values = -10:0.5:10; 

figure 

[C,hh] = contour(X, Y, Z, values,'r', 'LineWidth',1); 

clabel(C, hh, values, 'fontsize',7) 

正如你可以在等高线看,所有的线来绘出线宽= 1。我想要绘制特殊线的值= 0,LineWidth = 2,如何设置它?感谢您的帮助。

+2

你必须做次要的'轮廓'情节。请参阅:[突出显示特定等高线](https://www.mathworks.com/examples/matlab/mw/graphics-ex63999328-highlight-specific-contour-levels) – excaza

+0

非常感谢。有用 – User1961

回答

1

您将需要制作次要轮廓图以突出显示所需的轮廓水平。 MathWorks在文档中有an example of this

对于你的情况,我们将有类似如下:

% Generate sample data 
x = linspace(-2*pi,2*pi); 
y = linspace(0,4*pi); 
[X,Y] = meshgrid(x,y); 
Z = sin(X)+cos(Y); 
values = -10:0.5:10; 

% Generate initial contour plot 
figure 
[C,hh] = contour(X, Y, Z, values,'r', 'LineWidth',1); 
clabel(C, hh, values, 'fontsize',7) 

% Generate second contour plot with desired contour level highlighted 
hold on 
contour(X, Y, Z, [0 0], 'b', 'LineWidth', 2); 
hold off 

哪个返回如下:

yay

这并不是说我指定的单个等高线作为载体。这是通过the documentation for contour解释:

contour(Z,v)绘制矩阵Z与在单调增加矢量v指定的数据值的等高线的等高线图。要在特定值处显示单个轮廓线,请将v定义为两个元素均等于所需轮廓级别的矢量。例如,画等高线在k级别,使用contour(Z,[k k]

如果你想突出多层次那么这并不适用(例如contour(X, Y, Z, [-1 0], 'b', 'LineWidth', 2)突出-10