我想在Matlab中创建一个在某些自定义位置有网格线的图形,但我也想定期编写刻度线。目前我生成了以下图表,网格线位于正确的位置:
plot(myData);
xlabel('Frequency');
ylabel('Maginute');
set(gca, 'XTick', listOfTheoreticalValues);
set(gca,'XGrid', 'on');
set(gca, 'XTickLabel', '');
然而,我现在面临的问题是,我不能在x轴上放置正常的等间距刻度,更不用说标记值,因为这样会立即添加额外的网格线。有没有办法将这两件事彼此分开?
答案 0 :(得分:2)
正如休·诺兰所说,手动添加网格线是解决问题的一种方法。以下代码将起到作用:
%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');