matlab画图,选择性显示legend标签

先说问题吧:

一幅图画了几条曲线,其中有一条是分段画的,这些段是一种颜色,其他线是其他颜色,最终显示结果,明显这条线只需要一个legend,即需要将一些线的标签不显示,即选择性显示标签。曾尝试用空字符表示这条线的其他段,但是最终legend时,空字符也是一个标签,还是标签过多。

查了一下,还是很多方法解决问题的——

1、百度的AI结果,还是很好的:

百度AI助手 (baidu.com)

最后一句:
    'Callback', @(src,event) set(legend_handles(2), 'Visible', get(src,'Value') == 1));
 

不多赘述,看代码即明白,这些方法都可行。

matlab gui legend选择显示-CSDN博客  这个其实就是方法2.

2、有一种新的情况,即一次画了多条曲线(多个图)

MATLAB-显示指定曲线的legend - 简书 (jianshu.com)

即是:

另legend函数支持字体大小、类型、粗细等键值对设置。也可以用句柄的属性来设置,如下:

% 创建示例数据
x = linspace(0, 2*pi, 100);
y1 = sin(x);
y2 = cos(x);

% 绘制图形
figure;
plot(x, y1, 'r', x, y2, 'b');
hold on;

% 创建图例
h_legend = legend({'sin(x)', 'cos(x)'});

% 设置图例的字体大小
h_legend.FontSize = 12; % 将字体大小设置为12
% 设置图例的字体为粗体,并将字体名称设置为'Arial'
h_legend.FontWeight = 'bold';
h_legend.FontName = 'Arial';
 

### 使用MATLAB绘制图形的方法 #### 创建基本二维图形 为了创建一个简单的二维线形图,`plot` 函数是最常用的选择之一。此函数接受向量作为输入参数来表示X轴和Y轴的数据点[^2]。 ```matlab x = linspace(0, 2*pi, 100); y = sin(x); figure; plot(x, y); title('Sine Wave'); xlabel('Angle (radians)'); ylabel('sin(x)'); grid on; ``` 这段代码展示了如何定义数据集并调用 `plot()` 来显示正弦波图像。通过设置标题、标签以及网格选项可以使图表更加清晰易读。 #### 绘制三维曲面图 对于更复杂的场景比如展示地形或者多变量之间的关系,则可以利用 `surf` 或者 `mesh` 命令构建三维表面模型。 ```matlab [X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; figure; surf(X,Y,Z); shading interp; % 平滑着色效果 colorbar; title('Sombrero Function'); xlabel('X-axis'); ylabel('Y-axis'); zlabel('Value of Z'); ``` 这里演示了一个名为“sombrero”的经典测试案例,其特征在于中心高起而四周低陷的形态。 #### 利用GUI组件定制交互式应用 除了静态图片外,在某些情况下可能还需要设计具备一定互动性的应用程序界面。这时就可以借助于MATLAB内置的GUIDE工具或是App Designer平台来进行开发工作[^1]。 例如,可以通过编写回调函数响应用户的鼠标点击事件从而动态更新视图内容: ```matlab function pushbutton_Callback(hObject,eventdata) axes(handles.axes1); cla reset; plot(rand(1,10)); hold off; end ``` 上述片段摘自某个按钮控件关联的动作处理程序内部逻辑——每当按下该按键就会随机生成一组新曲线覆盖原有对象之上。 #### 多重子图布局管理 当需要在同一张画布里呈现多个独立却又相互关联的小型插图时,可采用 `subplot` 方法轻松完成分隔任务[^4]。 ```matlab t = 0:pi/10:2*pi; [ax, ay, az] = sphere; subplot(2,2,1); pie([37 9]); title('Pie Chart'); subplot(2,2,2); stem(t,sin(t)); title('Stem Plot'); subplot(2,2,[3 4]); surf(ax,ay,az); axis equal tight vis3d; camlight right; lighting phong; title('Sphere Surface'); ``` 以上实例中包含了饼状统计图、离散序列脉冲示意以及球体表层结构三种不同类型的作品组合在一起形成整体视觉冲击力更强的效果。 #### 图像叠加与保持状态控制 有时候要把几组不同的数据系列放在同一个坐标系下对比分析,此时就需要启用 `hold on` 功能以便连续追加后续线条而不清除先前已有的部分[^5]。 ```matlab x = -pi : pi/10 : pi; y_sin = sin(x); y_cos = cos(x); figure; plot(x,y_sin,'b-o','LineWidth',2); hold on; plot(x,y_cos,'r--s','MarkerFaceColor',[1 .6 .6],'LineWidth',2); legend({'Sin Curve';'Cos Curve'}); box on; ``` 本段脚本实现了两条分别代表正余弦变化趋势折线的同时展现,并且指定了各自的颜色样式加以区分标记。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值