Problem with saving surf plot in vector format

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.

Answers (1)

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 Thank you for the idea. However, it looks like this function was introduced in 2020a version.
@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.

Sign in to comment.

Products

Release

R2018a

Asked:

on 29 Jan 2024

Commented:

on 29 Jan 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!