同时绘制刻度线和自定义网格线

时间:2013-07-11 13:50:06

标签: matlab matlab-figure

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

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

enter image description here

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

1 个答案:

答案 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');