给轴优先于绘制线而不给出网格优先级

时间:2018-04-03 11:56:33

标签: matlab plot

在我的previous question中,我问过如何在绘制的线上优先考虑轴和刻度线。正确的解决方案是:

set(gca,'Layer','top');

但是,如果我还想在图上绘制一个网格,则在导出为.eps文件时,这将使网格优先于绘制的线条,如附图所示。这是不合需要的,并导致蓝线的虚线外观。

enter image description here

如何优先考虑轴和刻度线,但不优先考虑网格?

1 个答案:

答案 0 :(得分:1)

轴对象的'Layer' property控制轴,刻度线和网格线的分层,因此它们不能单独分层。您的选择是:

  • 使用相同的限制将两个轴堆叠在一起,底部轴具有网格线,没有绘制数据,顶部轴具有分层顶部的数据和轴刻度。
  • 首先自己绘制网格线,然后将数据绘制在它们之上,例如:

    [xGridv, yGridv] = meshgrid([0.1 0.2 0.3], [0 1.7]);  % Vertical grid lines
    [yGridh, xGridh] = meshgrid([0.5 1 1.5], [0 0.32]);   % Horizontal grid lines
    hold on;
    plot(xGridv, yGridv, 'k:');
    plot(xGridh, yGridh, 'k:');
    % Plot your data