我有很多图表。 我需要对这些图表进行一些格式化。就像我需要更改标签一样,画几条线然后放置图例,在所有这些图表上格式化字体大小和颜色等。这些图表是 .fig 文件。
我没有图形数据点,并且生成代码选项需要很长时间才能处理。这些图是散点图。
有没有办法可以对所有这些图表使用相同的格式。就像打开所有无花果并通过编码进行一些图形属性编辑?或者创建一种格式并可以将其应用于所有数字? (类似于格式绘制之类的东西)
谢谢
最佳答案
MATLAB 图形是复杂的层次对象,因此几乎不可能制作通用的“格式绘制器”。
您可以将图形、轴、线等属性作为结构体获取,但其中许多属性是只读的。
如果您正在处理简单的图形 - 一个轴、类似类型的绘图、相同数量的数据系列、没有手动注释 - 可能更简单的方法是从一个图形中获取数据并将其应用到您想要的图形用作标准。
如果您的图形都是散点图,则对象类型是线条(如果您使用绘图)或 hggroup(如果您使用散点图)。所以他是一个如何做到这一点的例子。
fstd = hgload('standard.fig'); %# load standard figure
f1 = hgload('f1.fig'); %# load another figure
%# find data series objects
hstd = findobj(gcf,'type','line','-or','type','hggroup');
h1 = findobj(gcf,'type','line','-or','type','hggroup');
assert(numel(hstd)==numel(h1),'Figures have different number of data series')
%# get the data coordinates from one figure and apply to another
for k = 1:numel(hstd)
h1x = get(h1(k),'XData');
h1y = get(h1(k),'YData');
h1z = get(h1(k),'ZData');
set(hstd(k),'XData',h1x);
set(hstd(k),'YData',h1y);
set(hstd(k),'ZData',h1z);
end
hgsave(hstd,'f1mod.fig') %# save the modified figure
关于Matlab 重用图例和格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9196972/