52

通常当我在MATLAB中绘图时,它总是在同一个图形上绘制。我如何让它绘制一个新的图形?

我知道它非常初级,但我没有使用 Google 搜索找到它。

4

6 回答 6

75
figure;
plot(something);

或者

figure(2);
plot(something);
...
figure(3);
plot(something else);
...

等等

于 2009-01-11T18:05:06.760 回答
22

虽然执行“图(1),图(2),...”在大多数情况下会解决问题,但不会在所有情况下都解决。假设您的桌面上有一堆 MATLAB 图形,并且在运行代码之前,您打开的图形数量会不时变化。使用提供的答案,您将覆盖这些您可能不想要的数字。简单的解决方法是在绘图之前使用命令“figure”。

示例:您的桌面上有五个图形,来自您运行并使用的先前脚本

figure(1);
plot(...)

figure(2);
plot(...)

您刚刚在桌面上绘制了数字。然而代码

figure;
plot(...)

figure;
plot(...)

刚刚使用您想要的地块创建了图 6 和图 7,并单独留下了之前的地块 1-5。

于 2010-10-27T00:28:07.963 回答
12

另一件需要注意的事情是,clf当你开始一个新的情节时,使用 (clear figure) 命令。否则,您可能会在一个预先存在的图形上绘图(单独使用命令不可能figure,但如果您这样做figure(2),可能已经有一个图形#2),具有多个轴,或者放置的轴有点有趣。用于clf确保您从头开始:

figure(N);
clf;
plot(something);
...
于 2009-01-12T22:44:06.073 回答
3

正如已经说过的:figure将为您的下一个情节创建一个新人物。调用figure时您也可以配置它。例子:

figHandle = figure('Name', 'Name of Figure', 'OuterPosition',[1, 1, scrsz(3), scrsz(4)]);

该示例设置窗口的名称及其相对于所用屏幕的外部大小。这figHandle是生成图形的句柄,以后可以用来更改外观和内容。例子:

点符号:

figHandle.PaperOrientation = 'portrait';
figHandle.PaperUnits = 'centimeters';

老款式:

set(figHandle, 'PaperOrientation', 'portrait', 'PaperUnits', 'centimeters');

使用带有点符号或的句柄,set此处配置打印选项。

通过保留具有不同名称的图形的句柄,您可以与多个活动图形进行交互。要将现有图窗设置为您的活动图,请调用figure(figHandle)。新的地块现在将去那里。

于 2015-04-01T18:38:49.257 回答
1

另一个常见的选项是当您确实希望在一个窗口中显示多个图时

f = figure;
hold on
plot(x1,y1)
plot(x2,y2)
...

在同一个(新)图形上绘制多个数据集。

于 2015-11-06T05:28:58.193 回答
0

就这么简单——

figure, plot(yourfigure);
于 2015-04-01T18:57:27.053 回答