MATLAB 中的轴和用户数据
Posted
技术标签:
【中文标题】MATLAB 中的轴和用户数据【英文标题】:Axes and UserData in MATLAB 【发布时间】:2016-05-13 03:32:05 【问题描述】:我想在 MATLAB 的坐标区句柄中存储一些数据。 为此,我正在使用“UserData”属性。 我注意到 plot 命令清除了“UserData”属性。这是正常行为吗?通过绘图,我可以理解轴句柄的 XData 和 YData 会更新,但为什么 UserData 被清除了?
您可以在此处找到显示我的问题的示例代码。我正在使用 MATLAB 2014b。
figure
set(gca, 'UserData', 10)
disp(['UserData = ' num2str(get(gca, 'UserData'))]) % displays 10 in the command window
plot(1:10);
disp(['UserData = ' num2str(get(gca, 'UserData'))]) % displays no userdata, it is empty
【问题讨论】:
这是记录在案的行为,使用hold off
绘制会清除 所有 轴属性。
使用 ax.Parent.UserData 存储想要跟随轴的信息是否安全?
【参考方案1】:
@excasa 评论是正确的,给你一些额外的信息。
因为NextPlot
属性的默认值是replace
,所以 UserData 被清除,我在我的所有 matlab 中将其更改为add
,因为我主要想创建多个绘图,然后我在轴,当我想清除它时。
在你的情况下,我会做的是:
f = figure;
ax = axes ( 'parent', f, 'nextplot', 'add' ); % defining parent is good practice
plot ( ax, [1:10], 'ro' );
ax.UserData = 10;
plot ( ax, [1:10], 'k-' );
等等……
注意:将轴定义为变量并在所有命令中使用它而不是 gca
或 gcf
是一种很好的做法。
【讨论】:
以上是关于MATLAB 中的轴和用户数据的主要内容,如果未能解决你的问题,请参考以下文章
seaborn可视化散点图并自定义数据轴标签(X轴和Y轴的轴标签,Change X & Y Axis Labels to a Seaborn Plot)
尺寸类紧凑高度不适用于 UIStackView 的轴和真实设备
seaborn可视化散点图并自定义数据轴标签指定标签文本的大小(X轴和Y轴的轴标签,Change X & Y Axis Label Size in a Seaborn Plot)
python使用matplotlib可视化为可视化图像的X轴和Y轴设置自定义的轴标签(axis labels of matplotlib plot)