我正在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
,则整个图形变为栅格化。如何为图形中的其余要素绘制带有矢量图形的栅格化曲面图?
1条答案
按热度按时间envsm3lx1#
文件交换提供vecrast,在这种情况下可能会工作。它应该能够合并光栅和矢量格式。
从
vecrast
函数的描述中可以看出:vecrast是一个允许自动保存具有矢量和光栅混合内容的图形的功能。更具体地说,创建感兴趣的图形的两个副本,光栅图形和矢量图形。面片、表面、轮廓、图像和灯光保留在rasterFigure中,但从vectorFigure中删除。rasterFigure然后保存为具有所需分辨率的临时.png图像。png文件随后插入到vectorFigure中,结果保存在单个矢量文件中。
该函数能够处理2D和3D图,如注解中所述: