如何在MATLAB图中精确控制线厚?

Szy*_*ski 8 matlab line width matlab-figure

我想精确控制MATLAB中绘制的线条的粗细.不只是0.5,1,2,3 ......点,但例如0.2mm.可能吗?

导出设置窗口中有自定义线比例和最小线宽框但不起作用.

在此输入图像描述

示例代码:

hf = figure;
ha = axes;
ha.Units = 'centimeters';

t = linspace(0,2*pi);
hl = plot(t,sin(t),'Linewidth',0.1);
axis tight

saveas(hf,'test','pdf')
Run Code Online (Sandbox Code Playgroud)

Car*_*los 5

MatLab使用1 PostScript Point(或"Desktop Publishing Point")= 1/72英寸的标准定义.

(您可以通过导出一个数字来轻松确认这一点,例如,一行'LineWidth'等于36.如果您打印没有缩放的行,则纸张上的线宽为1/2英寸)

因此,如果您想要0.2 mm的线,您可以将线宽设置为0.567左右:

h = plot([0 0],[0 1]);
set(h,'LineWidth',0.567);
Run Code Online (Sandbox Code Playgroud)

如果要将其设置为所有绘图的默认线宽:

 set(0,'defaultlinelinewidth',0.567)
Run Code Online (Sandbox Code Playgroud)

对于单个会话,或放入您的startup.m文件以永久设置它.

回应@ szymon-b?czkowski:对于2014b及更高版本,Matlab中似乎存在一个错误,在导出为EPS或PDF时将线宽设置为最小值1.请参阅此处了解相关错误.所以'解决方法'就是坚持线宽> = 1.

虽然它似乎也不起作用,但我强烈建议将export_fig作为Matlab内置打印功能的替代品.