Я пытаюсь экспортировать заполненные контурные графики из Matlab в виде векторной графики, чтобы включить в файл латекса. Моя текущая методология:Matlab: Как избежать артефактов в заполненных контурных участках
contourf(x,y,v_mag,20), axis([0,width,0,height]),daspect('manual') ;
grid off
colormap jet
h = colorbar;
caxis([0 v_lid])
h.Label.String = 'Velocity Magnitude (m/s)';
set(gcf,'renderer','painters')
export_fig('-painters', '-transparent', 'pdf', 'filename.pdf');
Проблема этого метода состоит в том, что она производит артефакты (белые линии), которые выглядят следующим образом:
Я понимаю, что эти белые линии являются многоугольники, определяющие затененных областей, которые имеют невидимые края, и не совсем перекрывают (according to here). Проблема вызвана самой программой просмотра pdf, которая пытается сгладить строки, отображаемые на экране (according to here). Моя проблема в том, что большинство людей, просматривающих документ, не узнают об этом и не будут знать, как запретить зрителю делать это. Итак, мои вопросы:
Возможно ли создать векторную графику заполненного контурного графика из Matlab без этих артефактов?
Eps производит те же проблемы. Я попытался использовать SVG function, но не повезло. Я стараюсь избегать использования растровой графики из-за пикселизации, вызванной масштабированием. Любые советы будут высоко оценены.
EDIT - Дополнительная информация - Использование Matlab v.2014b и Ghostscript v.9.15
Выполняются ли эти изменения при увеличении и уменьшении масштаба в программе просмотра PDF? –
Да, они меняются. При масштабировании они исчезают. После увеличения они меняются. – 1QuickQuestion
В этом случае файл является правильным и точным, но это проблема с используемым программой просмотра PDF. Эффект в основном вызван округлением различий в рендерере. Возможно, это раздражает и требует некоторых инструкций, чтобы игнорировать эти строки. –