MATLAB绘图中坐标轴框中缺失黑色线条

7
在MATLAB中绘制图形时,我发现包含坐标轴的黑色框的部分缺失(左侧和底部): enter image description here 我尝试了以下操作:
box off
box on

无法成功执行命令。你知道我该怎么做才能在坐标轴上得到相应的黑色线吗?

注意:

我正在使用OpenGL渲染器:

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

2
你能发布生成此图的确切命令吗? - Chris
你使用过 alpha 函数来设置透明度吗?我注意到这个命令会导致坐标轴消失。 - yuk
4个回答

5

问题出在 OpenGL 渲染器 上。我在我的 startup 文件中有这行代码: set(0,'DefaultFigureRenderer','opengl'); 我一直认为如果你的硬件支持它,OpenGL 是更好的选择。除了像我刚遇到的这个问题之外,是否使用它还有任何不适当的理由? - Amelio Vazquez-Reina
1
请查看此文档 - yuk

2

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

set(gca, 'LineWidth', 1.2)

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

opengl software

然而,这样做可能会有缺点。例如,增加行宽会改变所有轴线,包括刻度线。


1
使用以下代码行使黑色线条出现
set(gca,'Layer','top')

0

作为一个完美主义者,这个 bug 困扰了我多年!这是似乎可行的解决方法,MATLAB R2013a:

  1. 我关闭了OpenGL(会导致各种奇怪的行为):set(0,'DefaultFigureRenderer','zbuffer')
  2. 在绘图之前和之后,我添加一个框:

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

我的答案实际上是关于在GUIDE图中绘制时缺失盒线的问题。当我使用常规的figure()plot(...)命令时,从未遇到过这个问题。

希望能有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接