неизвестные белые линии при сохранении круговой диаграммы в формате pdf


Когда я сохраняю круговую диаграмму в формате pdf, она содержит неизвестные белые линии. Чтобы упростить вопрос, я изменяю код до его наиболее общей формы следующим образом.

clc;
h=pie(1);
%set the pie chart color to black
h(1).FaceColor = 'k';
Причина, по которой я выбрал черный цвет, заключается в том, что белые линии контрастируют больше всего с черным фоном. Пожалуйста, смотрите прилагаемый рисунок pdf.

когда экономия-секторная диаграмма-как-в формате PDF

Я также нахожу похожий поток, имеющий ту же проблему по этой ссылке: странные артефакты при сохранении круговой диаграммы в формате pdf. Никакое решение не предусмотрено на этот момент.

Конфигурация моей системы: macOS Sierra версии 10.12. Matlab R2016b.

Приветствуется любой ввод. Спасибо.

2 4

2 ответа:

Я нашел добавление любого одного из них, после вашего вызова pie и такого, позаботился о проблеме:

  • set(gcf,'renderermode','manual');
  • set(gcf,'renderer','opengl');
  • set(gcf,'renderer','opengl','renderermode','manual');

Это странно, потому что если вы попробуете get(gcf,'renderer'), он покажет, что это opengl (по крайней мере, на моей машине), однако он интерпретируется как алгоритм painters, пока режим визуализации не переключится на ручной. Это происходит автоматически, если вы устанавливаете рендерер в opengl, или вы можете просто установить режим рендеринга в ручном режиме, а затем он (Матлаб) на самом деле смотрит на собственность рендерер.

Вот доказательство концепции

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'); 
Мне пришлось преобразовать это в изображение, чтобы оно появилось здесь, но ... pdf выглядит так же (т. е. без белых линий). как выглядит pdf файл

Я сталкивался с этим раньше, я не уверен на 100% в том, что это вызывает, Я думаю, что это может быть комбинация того, как MATLAB создает векторные файлы и как программа просмотра PDF сглаживает изображение. Мне говорили, что вы можете обойти эту проблему, изменив визуализатор, используемый MATLAB, но мне лично не очень повезло с этим.

В качестве обходного пути можно попробовать сохранить рисунок в виде SVG, открыть в векторном редакторе, таком как inkscape, и дважды продублировать рисунок (согласно this вебсайт). Затем вы можете сохранить рисунок из Inkscape в формате PDF.