Lau*_*eer 4 matlab matlab-figure
我一直在尝试从之前创建的图中获取一些数据,但我一直在与图例作斗争。我正在使用 MATLAB 2014b。
如果我之前使用以下方式设置我的情节:
h.fig = figure();
h.ax = axes(); hold all;
h.line1 = plot(0:0.01:2*pi(), sin(0:0.01:2*pi()));
h.line2 = plot(0:0.01:2*pi(), cos(0:0.01:2*pi()));
h.xlab = xlabel('X');
h.ylab = ylabel('Y');
h.leg = legend('sin(x)', 'cos(x)');
Run Code Online (Sandbox Code Playgroud)
然后,在没有h可用的情况下,我仍然可以检索 x 和 y 轴标签作为字符串:
xlab = get(get(gca, 'xlabel'), 'string');
ylab = get(get(gca, 'ylabel'), 'string');
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法以类似的方式从图例中提取文本。我注意到:
fig_children = get(gcf, 'children');
Run Code Online (Sandbox Code Playgroud)
显示轴和图例作为图形的子项,但我似乎无法以与轴相同的方式访问它们:
ax = get(gca);
Run Code Online (Sandbox Code Playgroud)
我可能误解了它的工作方式的一些明显的东西,但我找不到一种方法来从以前制作的图例中取出字符串?
图例文本与线关联,而不是与图例对象关联,因此:
ax_children = get(gca, 'children');
Run Code Online (Sandbox Code Playgroud)
输出我正在绘制的线的线阵列:
ax_children =
2x1 Line array:
Line (cos(x))
Line (sin(x))
Run Code Online (Sandbox Code Playgroud)
进而:
leg_strings = get(ax_children, 'displayname');
Run Code Online (Sandbox Code Playgroud)
输出元胞数组:
leg_strings =
'cos(x)'
'sin(x)'
Run Code Online (Sandbox Code Playgroud)
这就是我一直在寻找的东西。
| 归档时间: |
|
| 查看次数: |
2969 次 |
| 最近记录: |