неизвестные белые линии при сохранении круговой диаграммы в формате pdf
Когда я сохраняю круговую диаграмму в формате pdf, она содержит неизвестные белые линии. Чтобы упростить вопрос, я изменяю код до его наиболее общей формы следующим образом.
clc;
h=pie(1);
%set the pie chart color to black
h(1).FaceColor = 'k';
Причина, по которой я выбрал черный цвет, заключается в том, что белые линии контрастируют больше всего с черным фоном. Пожалуйста, смотрите прилагаемый рисунок pdf.
Я также нахожу похожий поток, имеющий ту же проблему по этой ссылке: странные артефакты при сохранении круговой диаграммы в формате pdf. Никакое решение не предусмотрено на этот момент.
Конфигурация моей системы: macOS Sierra версии 10.12. Matlab R2016b.
Приветствуется любой ввод. Спасибо.
2 ответа:
Я нашел добавление любого одного из них, после вашего вызова
pie
и такого, позаботился о проблеме:
set(gcf,'renderermode','manual');
set(gcf,'renderer','opengl');
set(gcf,'renderer','opengl','renderermode','manual');
Это странно, потому что если вы попробуете
get(gcf,'renderer')
, он покажет, что этоopengl
(по крайней мере, на моей машине), однако он интерпретируется как алгоритм painters, пока режим визуализации не переключится на ручной. Это происходит автоматически, если вы устанавливаете рендерер в opengl, или вы можете просто установить режим рендеринга в ручном режиме, а затем он (Матлаб) на самом деле смотрит на собственность рендерер.Вот доказательство концепции
Мне пришлось преобразовать это в изображение, чтобы оно появилось здесь, но ... pdf выглядит так же (т. е. без белых линий).clc; h=pie(1); %set the pie chart color to black h(1).FaceColor = 'k'; % set(gcf,'rendererMode','manual'); set(gcf,'renderer','opengl','renderermode','manual') saveas(gcf,'pie.pdf');
Я сталкивался с этим раньше, я не уверен на 100% в том, что это вызывает, Я думаю, что это может быть комбинация того, как MATLAB создает векторные файлы и как программа просмотра PDF сглаживает изображение. Мне говорили, что вы можете обойти эту проблему, изменив визуализатор, используемый MATLAB, но мне лично не очень повезло с этим.
В качестве обходного пути можно попробовать сохранить рисунок в виде SVG, открыть в векторном редакторе, таком как inkscape, и дважды продублировать рисунок (согласно this вебсайт). Затем вы можете сохранить рисунок из Inkscape в формате PDF.