1

我正在尝试在 Matlab 中制作一个在某些自定义位置有网格线的图形,但我也想定期编写刻度线。目前我制作了以下图表,网格线位于正确的位置:

plot(myData);
xlabel('Frequency');
ylabel('Maginute');
set(gca, 'XTick', listOfTheoreticalValues);
set(gca,'XGrid', 'on');
set(gca, 'XTickLabel', '');

在此处输入图像描述

然而,我现在面临的问题是我不能在 x 轴上放置正常、等距的刻度,更不用说标记值了,因为这也会立即添加额外的网格线。有没有办法把这两件事分开?

4

1 回答 1

2

正如 Hugh Nolan 所建议的,手动添加网格线是解决问题的一种方法。以下代码可以解决问题:

%Grid line locations
x_lines = listOfTheoreticalValues;
y_limits = [lower_y_limit; upper_y_limit]; %Insert desired y-limits here

y_grid = repmat(y_limits, 1, numel(x_lines));
x_grid = [x_lines; x_lines];

plot(x_grid, y_grid, ':', 'color', [1,1,1]/2); %First plot grid lines
hold on
plot(myData); %Then plot data to draw data on top of grid lines

xlabel('Frequency');
ylabel('Maginute');
于 2013-07-11T15:51:34.600 回答