2016-11-25 51 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