我正在使用MATLAB制作3D曲面图,我希望将曲面图栅格化(以节约图片大小和加载速度),同时保留图中的其它部分(例如坐标轴、标签、标题等)为矢量图。我该如何做?目前我有以下代码:
x = linspace(-2, 2, 201);
y = linspace(-2, 2, 201);
[X, Y] = meshgrid(x, y);
Z = sin(sqrt(X.^2 + Y.^2));
fig = figure;
colormap parula
surf(X, Y, Z, 'FaceColor', 'interp', 'EdgeColor', 'none', 'FaceLighting', 'gouraud')
daspect([4 4 1])
axis tight
view(-50, 30)
camlight left
exportgraphics(fig, 'test_matlab_02.pdf', 'ContentType', 'vector')
如果我将
ContentType
设置为vector
,那么整个图形都是矢量图形。如果我将ContentType
设置为image
,则整个图形会变成光栅化。我如何在剩余的图形特性中获得一个光栅化表面绘图与矢量图形?
ax.plot_surf(...,rasterized=True)
和fig.savefig('test.pdf', dpi=500)
,然后使用dpi
控制光栅化表面图的分辨率,就可以实现我想要的效果。我发现MATLAB在照明和着色方面提供了更好的表面绘图质量,所以我想看看是否可以在MATLAB中不进行太多修改的情况下实现相同的效果(光栅化表面图+矢量图形中的其余内容)。 - Physicist