Matlab 怎么在一个图上先后生成图例
时间: 2023-06-18 15:08:33 浏览: 105
在 Matlab 中,可以使用 `hold on` 和 `hold off` 命令来在同一张图上绘制多个图形。而在每个图形中添加图例,则可以使用 `legend` 命令。
以下是一个简单的示例:
```matlab
% 生成第一个图形
x1 = linspace(0, 2*pi, 50);
y1 = sin(x1);
plot(x1, y1, 'r');
hold on;
% 生成第二个图形
x2 = linspace(0, 2*pi, 50);
y2 = cos(x2);
plot(x2, y2, 'b');
hold off;
% 添加图例
legend('sin(x)', 'cos(x)');
```
在上述示例中,我们先使用 `plot` 命令分别生成了两个图形,并在第一个图形生成后使用 `hold on` 命令保留了图形的绘制状态,然后生成了第二个图形。接下来,使用 `hold off` 命令取消了绘图状态的保留,然后使用 `legend` 命令添加了图例,并指定了每个图例对应的图形名称。
这样,就在同一张图上生成了两个图形,并为它们添加了图例。
相关问题
matlab怎么在图像上有两个图例
在MATLAB中,可以在同一幅图像上添加两个图例。
以下是一些步骤:
1. 使用`hold on`命令保持当前的图形窗口并在其上添加新的图形元素。
2. 创建第一个图例,使用`legend`命令,指定需要显示的图例项和它们的标签。
3. 创建第二个图例,使用`legend`命令,再次指定需要显示的图例项和它们的标签。
4. 使用`hold off`命令释放当前的图形窗口。
下面是一个示例代码片段,它演示了如何在MATLAB中添加两个图例:
```
% 创建示例数据
x = linspace(0, 10, 100);
y1 = sin(x);
y2 = cos(x);
% 绘制图形
plot(x, y1, 'b', x, y2, 'r');
hold on;
% 创建第一个图例
legend('sin(x)', 'cos(x)');
% 添加第二个图例
h = zeros(2, 1);
h(1) = plot(NaN,NaN,'b');
h(2) = plot(NaN,NaN,'r');
legend(h, 'Line 1', 'Line 2');
% 释放当前图形窗口
hold off;
```
在上面的示例中,我们使用两个`plot`命令绘制两条曲线,并使用`hold on`命令保持当前的图形窗口。然后,我们使用`legend`命令创建第一个图例,并指定需要显示的图例项和它们的标签。接下来,我们创建第二个图例,使用一个虚假的`plot`命令创建两个空行,并使用`legend`命令再次指定需要显示的图例项和它们的标签。最后,我们使用`hold off`命令释放当前的图形窗口。
为什么MATLAB生成的图像都在一个图片里面
MATLAB生成的图像默认情况下会显示在同一个窗口中,这是因为MATLAB是一种交互式的计算环境,它的图形输出默认是在一个图形窗口中进行的。如果需要将生成的图像分别保存为不同的图片文件,可以使用MATLAB的"print"命令将图像保存为指定的文件格式。例如,可以使用以下命令将当前图形保存为PNG格式的图片文件:
```matlab
print -dpng filename.png
```
其中,"filename.png"为要保存的文件名。