gpt4 book ai didi

matlab - 标记大小单位与轴值成比例

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:26 25 4
gpt4 key购买 nike

我有一个 X Y Z 数据集。X和Y是二维坐标,Z是强度。

我使用散点函数绘制数据:

markerSize=100;
scatter(x,y,markerSize,z,'s','fill');

我使用选项“s”和“fill”来填充方 block 。

我的问题是 markerSize 值对应于标记的面积,它的单位是点(一英寸的 1/72)。

标记大小是恒定的,即使我调整图形图的大小也是如此。因此,当我增加图形大小时,数据点之间的差距会增加。

我想要的是一个恒定的标记大小,它是轴单位的常数。例如,标记大小应为 5x5(X 轴为 5,Y 轴为 5)。

感谢您的帮助。

最佳答案

您想使标记的大小与图形大小成正比。

标记的大小由 scattergroup 对象的 SizeData 参数控制。图的大小存储在 figure 对象的 Position 参数中。困难的部分是在更改图形大小时以交互方式调整标记的大小。所以你需要使用ResizeFcn回调并调用你定义的setmarkersize函数。

function [ ] = setmarkersize( src, evnt )

% # get position of the figure (pos = [x, y, width, height])
pos = get(src, 'Position');
% # get the scattergroup object
h = get(get(src,'children'),'children');
% # resize the marker
relativesize = 0.5;
set(h,'SizeData', pos(3)*relativesize);

end
================================================
% # attach the callback to figure
f = figure('ResizeFcn', @setmarkersize);
h = scatter(x,y,markerSize,z,'s','fill');

关于matlab - 标记大小单位与轴值成比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22804326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com