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-' );

等等……

注意:将轴定义为变量并在所有命令中使用它而不是 gcagcf 是一种很好的做法。

【讨论】:

以上是关于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)

Matlab中用plot画图,x轴和y轴比例不一致