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

时间:2014-12-02 19:27:49

标签: matlab function matlab-figure figure

这个问题可能有点像下面的链接,但这对我不起作用...... 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 个答案:

答案 0 :(得分:5)

我认为你所追求的是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

希望有所帮助!

答案 1 :(得分:4)

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

set(0,'defaultlinelinewidth',2)

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

set(gcf,'defaultlinelinewidth',2)