Как точно контролировать толщину линии на графике MATLAB?
Я хотел бы точно контролировать толщину линии, построенной в MATLAB. Не только 0.5, 1, 2, 3, ... пункты но например 0.2 mm. Возможно ли это?
в окне настройки экспорта есть настраиваемый масштаб строки и минимальная ширина строки, но это не работает.
пример кода:
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.