Problem with saving surf plot in vector format
21 views (last 30 days)
Show older comments
I have a 3D surf plot (view from the top) which consists of many points (nodes). First, I tried to save it as a .svg file. The file has a .svg type, however, it is a raster one in reality. I found out that adding the code
set(gcf, 'Renderer', 'Painters');
may help. For 2D plots, it worked well, but in my case, it opens the figure (in Matlab) pretty slowly and after the saving, it looks weird (the colours are dull and there are many "holes" in the figure) --- see screenshots below.
1 Comment
Stephen23
on 29 Jan 2024
Perhaps this is related to these earlier topics:
Some of those include workarounds which may help you.
Answers (1)
Austin M. Weber
on 29 Jan 2024
It is odd, but even though MATLAB allows you to save plots as SVG files I am not certain that it allows you to import SVG files.
The following is not a solution if you need the file to be in a vector graphics format, but if all you want is for the image to be high resolution then you can save your figure as a high-resolution PNG file and read it normally:
%% Generate 3D surface plot with a top-down view
[X,Y] = meshgrid(-5:.05:5);
Z = Y.*sin(X) - X.*cos(Y);
s = surf(X,Y,Z,'EdgeColor','none');
colorbar
view([90 90])
%% Export high-resolution png
exportgraphics(gcf,'figure.png',Resolution=600);
%% Import image and display
img = imread('figure.png');
imshow(img)
2 Comments
Austin M. Weber
on 29 Jan 2024
@Bogdan Nikitchuk If you want, you can plug the code into MATLAB Online which automatically uses the most up-to-date version of MATLAB. That way you don't have to download a new Desktop version just to use the one function.
See Also
Categories
Find more on Formatting and Annotation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!