首页 文章

Matlab:在实际绘制一些之前如何更改图中的线宽?

提问于
浏览
3

这个问题可能有点像下面的链接,但这对我不起作用... http://nl.mathworks.com/matlabcentral/answers/102530-how-can-i-change-the-default-settings-for-the-linewidth-property-before-i-plot-a-figure-in-matlab

我正在开发一个matlab函数,它可以在全屏模式下自动打开你的图形,如果存在,则在第二个监视器上自动打开 . 到目前为止,一切正常 . 我已经实现了在函数内设置fontsize,所以whitout绘制任何东西而不用制作xlabel(..)等:

% Fontsize used at the figure
if ~exist('fontsize_manual','var')|| isempty(fontsize_manual)
    set(gca,'FontSize',16)
else
    set(gca,'Fontsize',fontsize_manual)
end

现在是我的问题:我可以用相同的方式改变图中绘制的线的线宽吗?所以在这里,预先定义函数内部的线宽,然后在你的脚本中绘制一些线等 . 我更喜欢这只适用于你正在处理的数字,这样你就可以为每个数字更改这个'default'并保存如果需要,它们都具有不同的线宽和字体 .

我尝试了下面这一行,但这只改变了轴的线宽 .

set(gca,'LineWidth',2)

有没有人可以帮我解决这个问题?

%------------------------------------------------- -------------------------------------------------- ---------------------------下面的答案很好,但我发现了一个新问题 . 通过解决上一个问题意外发现下面的代码:

set(gca,'LineWidth',3)

事实证明这改变了轴的宽度 . 但现在问题......此处这只适用于第一个数字 . (见图)
enter image description here

如果我在第二个图中的绘图之后也将此代码放在我的会话中,则第二个图中的宽度会发生变化 . 在制作第二个数字时,看起来在功能内部没有到达右手柄或类似的东西 . 你知道这里有什么不对吗?

2 回答

  • 4

    我认为你所追求的是 DefaultLineLineWidth 属性,你可以为特定的数字(或根)分配一个值 .

    这是一个简单的代码说明;基本上我创建一个数字,将其“可见”属性设置为“关闭”并指定默认线条线宽(听起来很奇怪......) . 绘制的线的线宽为4,而之后创建的另一个绘图具有默认宽度:

    clear
    clc
    
    hFig1 = figure('Visible','off'); %// Create figure, set it to not visible.
    
    set(gcf,'DefaultLineLineWidth',4); %// Assign default linewidth.
    
    x = 1:10;
    plot(x,x.^2-5);
    
    set(hFig1,'Visible','on')
    title('Figure 1','FontSize',16);
    
    hFig2 = figure;
    plot(x,2.*x+rand(1,10));
    title('Figure 2','FontSize',16);
    

    图:

    enter image description here

    enter image description here

    希望有所帮助!

  • 5

    显示的链接设置了根的属性(因此所有数字都应该继承) . (这对我有用)

    set(0,'defaultlinelinewidth',2)
    

    您也可以尝试类似您建议的类似set命令,但将其更改为:

    set(gcf,'defaultlinelinewidth',2)
    

相关问题