Графика Matlab: зубчатые линии на выходе

Я столкнулся с проблемой вывода графики низкого качества в Matlab, похожей на этот вопрос, но приведенные там решения не сработали для меня. Использование Matlab 2014b или 2015a приводит к той же проблеме.

Создайте примерную фигуру с помощью следующих команд:

a = rand(200, 1)
b = .1 * rand(200, 1) + .4
plot([a b])
patch([1 100 100 1], [0 0 1 1], [-.1, -1., -.1, -.1], .1*ones(4, 1))
export_fig('test4.pdf')

Полученное изображение имеет неровные соединения линий и линии, которые перекрываются непоследовательным образом - иногда синяя линия находится впереди, иногда - оранжевая линия.

введите здесь описание изображения

Обратите внимание, что проблема возникает только в том случае, если Z-данные включены в команду исправления.

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

/J { setlinecap } def

to

/J { 1 setlinecap } def

Однако несоответствие того, какая линия была на переднем плане, сохранялось.

введите здесь описание изображения

Использование собственного вывода из Matlab приводит к той же проблеме, что и использование export_fig. Соединения строк можно исправить аналогичным образом, отредактировав файл .eps, на этот раз заменив любые строки 2 setlinecap на 1 setlinecap, но проблема с порядком строк осталась.

Затем я ищу ответ на один из двух вопросов:

  • Есть ли способ вывести изображение векторной графики из Matlab, чтобы избежать обеих этих проблем?
  • Есть ли способ исправить проблему с порядком строк путем пост-обработки файла, выводимого Matlab, аналогично тому, как можно исправить проблему с соединением строк?

person David Kelley    schedule 27.04.2015    source источник
comment
Есть ли какая-то особая причина, по которой вам нужно использовать export_fig? Приводят ли встроенные функции вывода Matlab к тем же проблемам?   -  person David    schedule 30.04.2015
comment
Оба метода приводят к одной и той же проблеме. Файлы .eps, сгенерированные двумя методами, совершенно разные, но решение связанного вопроса не работает ни для одного из них, и при ручном редактировании они оба заканчиваются проблемой приоритета переднего плана.   -  person David Kelley    schedule 30.04.2015
comment
export_fig, похоже, создает более читаемый файл .eps, и мне нравится автоматический размер страницы, который он делает, но кроме этого у меня нет причин предпочитать его встроенным функциям.   -  person David Kelley    schedule 30.04.2015
comment
Хорошо, просто хотел убедиться, но я не могу вам помочь, извините.   -  person David    schedule 30.04.2015


Ответы (1)


Эта проблема решена в Matlab 2015b. Для 2014b или 2015a нет известного обходного пути.

person David Kelley    schedule 10.11.2015