我有一个数字文件(scatter.fig)。 这个数字有很多散点使用绘图仪散射()。 现在我只是有这个图文件,我需要增加所有散点的标记大小。 手动,但其很难尝试它。 有没有一种方法,我可以这样做H = figurehandle()S =点(H)组(S, 'markersize');
我只是无法找出确切的命令。
谢谢。
我有一个数字文件(scatter.fig)。 这个数字有很多散点使用绘图仪散射()。 现在我只是有这个图文件,我需要增加所有散点的标记大小。 手动,但其很难尝试它。 有没有一种方法,我可以这样做H = figurehandle()S =点(H)组(S, 'markersize');
我只是无法找出确切的命令。
谢谢。
你需要得到一个句柄scattergroup对象来更改标记属性。 作为一个评论提出的乔纳斯,你可以轻松地得到它
% get handle to scattergroup object
h = gco;
由于散射组是轴的孩子,你也可以通过把它
% get handle to scattergroup object
h = get(gca,'children');
如果图像包含一个以上的图形对象(例如,其他行),该命令findall
可能的帮助(再次乔纳斯建议)。 用这个命令你可以搜索句柄与特定属性的图形对象:
h = findall(gca,'marker','o')
当你有一个句柄scattergroup,您可以通过更改标记的属性
% change size of markers
set(h, 'sizedata', 50)
要查看scattergroup属性的完整列表,可以改变使用
get(h)
或用于GUI显示的属性使用
inspect(h)
如果你只是想编辑一个图(即无需脚本),你可以通过点击工具栏上的鼠标按钮,然后在图(又被乔纳斯建议)上的一个标志点击编辑实际数字。 然后你在标记上单击鼠标右键,选择“属性”,然后你按下按钮“更多属性”。 在打开的界面更改条目“sizeData”为您选择的值。
编辑: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
财产。