Save just part of the figure
22 次查看(过去 30 天)
显示 更早的评论
Dear all, I generate my color bar using this code
ax = axes;
colormap (flipud(cool(10)))
caxis([0 1])
c = colorbar(ax,'southoutside');
ax.Visible = 'off';
here is the result of the above code which I wnat to save it:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/359581/image.jpeg)
and try to save it via ".SVG" format using:
cd 'F:\university'
set(gcf,'PaperOrientation','landscape');
set(gcf,'PaperUnits','normalized')
set(gcf,'PaperPosition',[0 0 .36 .36]);
print(gcf,'COLORBAR.svg','-dsvg');
But after that, there is a huge white space in the top of the color bar appears. Is there any way to save just a color bar? I read about exportfig and exportgraphic but unfortunately they unable to save figures as SVG format. so I thought it can be done using ax properties so I tried this
set(gca, 'units', 'normalized'); %Just making sure it's normalized
Tight = get(gca, 'TightInset'); %Gives you the bording spacing between plot box and any axis labels
%[Left Bottom Right Top] spacing
NewPos = [Tight(1)+.02 Tight(2)+.02 1-Tight(1)-Tight(3)-0.06 1-Tight(2)-Tight(4)-0.06]; %New plot position [X Y W H]
set(gca, 'Position', NewPos);
But it not accomplished well.
Are you know how I can save just the color bar as SVG format?
Thank you so much
0 个评论
采纳的回答
Ameer Hamza
2020-9-12
I think the easiest solution might be to export to eps format (which is also vector format) and then some other tool to generate svg. The following command will directly create eps file without any extra space.
f = figure;
ax = axes;
colormap(flipud(cool(10)))
caxis([0 1])
c = colorbar(ax,'southoutside');
ax.Visible = 'off';
exportgraphics(gcf, 'test.eps', ...
'ContentType', 'vector')
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!