首页 > 解决方案 > Matlab:网格数较少的`mesh()`绘图

问题描述

假设data是一个大小矩阵129 * 129

通过使用

mesh(data, 'FaceColor', 'none', 'EdgeColor', 'black')

我们得到类似的东西

在此处输入图像描述

我们可以发现,网格是相当密集的。我想要相同的数字,但网格线的数量更少,比如

在此处输入图像描述


data例如,绘制更小的图形当然是可行的data(1:10:end, 1:10:end)。但这样一来,剧情就不再像以前那么准确了。

另一个例子是plot(..., 'MarkerIndices', ...)。这可以在不修改绘图的情况下为您提供标记数量较少的绘图。https://www.mathworks.com/help/matlab/creating_plots/create-line-plot-with-markers.html

标签: matlabplotmatlab-figuremeshfigure

解决方案


我认为您最好的选择是创建一个surf没有网格线的图(显示具有完整数据分辨率的彩色表面),然后覆盖下采样mesh图。像这样的东西:

surf(data, 'EdgeColor', 'none');
hold on;
mesh(data(1:10:end, 1:10:end), 'EdgeColor', 'black');

您还可以为surf绘图添加一些透明度以使网格通过它可见:

surf(data, 'FaceAlpha', 0.7, 'EdgeColor', 'none');

推荐阅读