Matlab 从.fig文件增加散射点标记大小

Matlab 从.fig文件增加散射点标记大小,matlab,resize,command,scatter-plot,Matlab,Resize,Command,Scatter Plot,我有一个图形文件(scatter.fig)。此图有多个使用scatter()的散布点绘图仪。现在我有了这个fig文件,我需要增加所有散射点的标记大小。手动尝试过,但非常困难。 有没有办法让我做类似的事情 H=图手柄() s=点(h) 设置(s,'markersize') 我就是想不出确切的命令 谢谢。编辑:1在这种情况下,X和Y数据不可用 我试图找到markersize的句柄,但找不到。所以,我想出了另一种方法。如果我们有图形文件,那么我们可以直接从图形中获取X和Y数据,并使用新标记大小的sca

我有一个图形文件(scatter.fig)。此图有多个使用scatter()的散布点绘图仪。现在我有了这个fig文件,我需要增加所有散射点的标记大小。手动尝试过,但非常困难。 有没有办法让我做类似的事情 H=图手柄() s=点(h) 设置(s,'markersize')

我就是想不出确切的命令


谢谢。

编辑:1在这种情况下,
X
Y
数据不可用

我试图找到
markersize
的句柄,但找不到。所以,我想出了另一种方法。如果我们有图形文件,那么我们可以直接从图形中获取
X
Y
数据,并使用新标记大小的
scatter
重新打印图形。下面是代码

clear all
X=rand(100,1);
Y=rand(100,1);
scatter(X,Y,10) 
saveas(gcf,'SO_scatterQ.fig')
clear all
close all
%%%%%% THE CODE ABOVE JUST GENERATES A SCATTER .fig FILE WITH BLACKBOX PROPERTIES %%%%%
openfig('SO_scatterQ.fig')
Xdata_retrieved = get(get(gca,'Children'),'XData');
Ydata_retrieved = get(get(gca,'Children'),'YData');
scatter(Xdata_retrieved,Ydata_retrieved,20) % You can use any other marker size you wish to use

尽管如此,如果有人发布答案直接获取
markersize
属性的句柄,我还是很欢迎的。

您需要获取scattergroup对象的句柄才能更改标记属性。正如乔纳斯在评论中提出的,你可以通过

   % get handle to scattergroup object
   h = gco;
由于散射组是轴的子对象,因此也可以通过

% get handle to scattergroup object
h = get(gca,'children');
如果图像包含多个图形对象(例如,附加行),则命令
findall
可能会有帮助(同样是Jonas的建议)。使用此命令,可以搜索具有特定特性的图形对象的句柄:

h = findall(gca,'marker','o')
当您拥有散点组的句柄时,可以通过以下方式更改标记的特性:

% change size of markers 
set(h, 'sizedata', 50)
要查看可以更改的散射组属性的完整列表,请使用

get(h)
或用于显示所使用属性的GUI

inspect(h)


如果您只想编辑一个绘图(即不需要编写脚本),只需单击工具栏上的鼠标按钮,然后单击绘图中的一个标记(Jonas再次建议),即可编辑实际图形。然后右键单击标记,选择“属性”,然后按下“更多属性”按钮。在打开的UI中,将条目“sizeData”更改为您选择的值

谢谢。但问题是我无法访问数据。我只有.fig文件,它是散射命令的结果。因此,我没有使用scatter()函数绘制的X,Y。@user840546如果答案正确,请记住关闭问题。@Abhinav:Tere没有关闭正确答案的问题,但是接受他们。@Abhinav是的,我想这个方法,但是这个数字有太多的数据点,我认为上面的方法对我的案例来说会很慢。谢谢你的努力!我建议使用一种更稳健的方法来处理分散组。选择散点组(单击图形工具栏中的鼠标按钮,然后单击该组),并将句柄设置为
h=gco
,或者使用具有该组特定特征的
findall
,例如,如果标记是圆,则使用
h=findall(gca,'marker','o')
@Jonas:谢谢你的评论。你为什么不回答这个问题呢?你肯定会得到我的支持票。我的答案只不过是你的一个稍微改进的副本。编辑你的答案。然后非常感谢你的帮助。我只是做了编辑;如果我做错了什么或忘记了什么,请告诉我。谢谢!这正是我所尝试的。获取散射对象,但无法获取。我会试试的。你想解释一下吗?