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函数,它会自动将您的图形在全屏模式下打开,并在第二个显示器上(如果存在)。到目前为止,一切都很好。我已经成功设置了函数内的字体大小,因此在没有绘制任何内容或设置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

现在我的问题是:我能否以同样的方式更改图中绘制的线条的线宽?因此,在函数内预定义线宽,然后在脚本中绘制一些线条等。我更喜欢这仅适用于您正在处理的图形,以便您可以更改每个图形的“默认值”,并根据需要使用不同的线宽和字体大小保存它们所有。
我尝试了下面的代码,但那只改变了轴的线宽。
set(gca,'LineWidth',2)

有人能帮我解决这个问题吗?

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

set(gca,'LineWidth',3)

结果表明这会改变轴的宽度。但现在问题是...同样地,这只适用于第一个图。 (见图) enter image description here 如果我在第二个图绘制后也将此代码放入我的会话中,则第二个图中的宽度会发生变化。看起来好像在函数内部制作第二个图时没有达到正确的句柄,或者类似于这样的东西。你有任何想法吗?
2个回答

5
我认为你需要的是DefaultLineLineWidth属性,你可以为特定图形(或根图形)分配一个值。
这里有一个简单的代码示例;基本上我创建了一个图形,将其“visible”属性设置为“off”,并分配了默认线宽度(听起来很奇怪...)。绘制的线条具有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);

图表:

这里输入图片描述

这里输入图片描述

希望有所帮助!


4
显示的链接设置了根的属性(因此所有图形都应该继承)。 (这对我有用)
set(0,'defaultlinelinewidth',2)

您可以尝试类似于您建议的设置命令,但将其更改为以下内容:
set(gcf,'defaultlinelinewidth',2)

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