【问题标题】:Black lines missing in the box holding the axes of a MATLAB plot包含 MATLAB 图的轴的框中缺少黑线
【发布时间】:2012-03-19 17:36:02
【问题描述】:

在 MATLAB 中绘制图形时,我注意到保存轴的黑盒部分缺失(左侧和底部):

          

我已尝试发布:

box off
box on

命令没有成功。你知道我可以做些什么来获得轴上相应的黑线吗?

注意:

我正在使用 OpenGL 渲染器:

set(0,'DefaultFigureRenderer','opengl');

【问题讨论】:

  • 你能发布用于生成这个数字的确切命令吗?
  • 你用alpha函数设置透明度了吗?我注意到这个命令会导致坐标轴消失。

标签: matlab plot


【解决方案1】:

【讨论】:

  • 问题出在OpenGL renderer。谢谢!我有这行:set(0,'DefaultFigureRenderer','opengl'); 在我的startup 文件中。我一直认为如果你的硬件支持 OpenGL 会更好。有什么理由使用它吗? (除了像我刚刚做的那样试验问题)
  • 看看这个doc
【解决方案2】:

尝试稍微增加坐标轴的线宽:

set(gca, 'LineWidth', 1.2)

另外,从硬件(默认)切换到软件渲染可能会解决问题:

opengl software

但是,可能存在缺点。增加线宽,例如,改变所有轴线,包括刻度线。

【讨论】:

    【解决方案3】:

    使用下面这行代码让黑线出现

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

    【讨论】:

      【解决方案4】:

      作为一个完美主义者,这个错误困扰了我多年!这似乎可行,MATLAB R2013a:

      1. 我关闭了 OpenGL(出现各种奇怪的行为):set(0,'DefaultFigureRenderer','zbuffer')
      2. 我在绘制某些东西之前和绘制完成之后添加了一个框:

        axes(handles.MyAxes);
        
        cla;
        
        hold off;  
        box on;
        hold on;
        
        % Do your plotting...
        % scatter(...);
        % plot(...);
        % ...
        
        box on;
        
      3. 我还注意到,如果第一个命令是 plot,那么该错误可能仍然存在。在这种情况下,我使用带有白色的scatter(使其不可见)仅绘制一个点,然后使用plot。即scatter(x(1),y(1),1,'MarkerEdgeColor','w','MarkerFaceColor','w'),然后是plot(x,y,...)

      我的回答实际上是指在 GUIDE 图中绘制时缺少框线。在使用常规的figure() 然后plot(...) 命令时,我从来没有遇到过这个问题。

      希望对您有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-14
        • 1970-01-01
        • 2015-10-09
        • 2022-09-17
        • 2013-10-08
        • 1970-01-01
        相关资源
        最近更新 更多