包含MATLAB绘图轴的框中缺少黑线

包含MATLAB绘图轴的框中缺少黑线,matlab,plot,Matlab,Plot,在MATLAB中绘制图形时,我注意到包含轴的黑匣子部分缺失(左侧和底部): 我曾尝试发出: box off box on 命令没有成功。你知道我能做什么来得到轴上相应的黑线吗 注: 我正在使用OpenGL渲染器: set(0,'DefaultFigureRenderer','opengl'); 看起来您已经知道OpenGL渲染器的问题: set(0,'DefaultFigureRenderer','opengl'); 让我们知道您究竟做了什么来创建此图形。尝试稍微增加轴的线宽:

在MATLAB中绘制图形时,我注意到包含轴的黑匣子部分缺失(左侧和底部):

我曾尝试发出:

box off
box on
命令没有成功。你知道我能做什么来得到轴上相应的黑线吗

注: 我正在使用OpenGL渲染器:

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

看起来您已经知道OpenGL渲染器的问题:

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

让我们知道您究竟做了什么来创建此图形。

尝试稍微增加轴的线宽:

set(gca, 'LineWidth', 1.2)
此外,从硬件(默认)切换到软件渲染可以解决以下问题:

opengl software

然而,也可能有缺点。增加线宽,例如,更改所有轴线,包括记号。

使用以下代码行显示黑线


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

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

  • 我关闭了OpenGL(提供了各种奇怪的行为):
    set(0,'defaultfigurenderer','zbuffer')
  • 我在绘图前添加一个框,然后在绘图完成后添加:

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

  • 事实上,我的答案是指在导向图中绘制时,缺少框线。在使用常规的
    figure()
    plot(…)
    命令时,我从未遇到过这个问题


    希望有帮助

    您可以发布生成此图形的确切命令吗?您是否使用了
    alpha
    函数来设置透明度?我注意到这个命令会导致轴消失。问题是
    OpenGL渲染器
    。谢谢我有这样一行:
    set(0,'DefaultFigureRenderer','opengl')在我的
    启动
    文件中。我一直认为如果你的硬件支持OpenGL会更好。有什么理由不使用它吗?(除了像我刚才做的那样做实验)看看这个。