Как точно контролировать толщину линии на графике MATLAB?

Я хотел бы точно контролировать толщину линии, построенной в MATLAB. Не только 0.5, 1, 2, 3, ... пункты но например 0.2 mm. Возможно ли это?

в окне настройки экспорта есть настраиваемый масштаб строки и минимальная ширина строки, но это не работает.

enter image description here

пример кода:

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')

1 ответов


MatLab использует стандартное определение 1 PostScript Point (или" Desktop Publishing Point") = 1/72 дюйма.

(вы можете легко подтвердить это, экспортируя фигуру, скажем, с линией с "шириной линии", равной 36. Если вы напечатаете это без масштабирования, линия на бумаге будет шириной 1/2 дюйма)

поэтому, если вы хотите линию 0,2 мм, вы можете установить ширину линии в 0,567 или около того:

h = plot([0 0],[0 1]);
set(h,'LineWidth',0.567);

и если вы хотите установить по умолчанию толщина линий для всех ваших сюжеты:

 set(0,'defaultlinelinewidth',0.567)

для одного сеанса или положить в ваш запуск.M файл, чтобы установить его навсегда.

в ответ на @szymon-bęczkowski: с 2014b и позже, кажется, есть ошибка в Matlab, которая устанавливает ширину линии до минимального значения 1 при экспорте в EPS или PDF. См.здесь на похожие ошибки. Таким образом, "обходной путь", как есть, должен придерживаться linewidth>=1.

хотя это, похоже, тоже не работает, я настоятельно рекомендую export_fig в качестве альтернативы встроенным возможностям печати Matlab.