2014-02-18 2 views
0

У меня есть фигура, созданная в Matlab, которая использует дискретный цветной барабан и пользовательскую цветовую палитру. В идеале я хотел бы сохранить это как показатель постскриптума (.eps), поэтому я могу сделать некоторое редактирование в Inkscape. Однако, когда я сохраняю его в формате .eps, цветная панель кажется непрерывной при просмотре в Inkscape (среди других прогамм). Что мне нужно сделать, чтобы это остановить?Дискретная цветная панель с выходом postscript в Matlab

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

Вот код для моего Colorbar и то, что я использовал, чтобы сохранить его:

cmap=[118 18 19; 
     118 18 19; 
     184 18 21; 
     230 38 44; 
     255 127 0; 
     255 191 0; 
     247 217 9; 
     255 248 140; 
     182 237 240; 
     145 205 237; 
     107 174 232; 
     61 144 227; 
     32 114 214; 
     0 66 135; 
     0 31 103; 
     0 31 103; 
     0 31 103; 
     0 31 103; 
     0 31 103; 
     0 31 103]; 
cmap=cmap/255; 
colormap(cmap) 
caxis([-20 30] 
cb=colorbar('XTick',[-15 -12.5 -10 -7.5 -5 -2.5 0 2.5 5 7.5 10 12.5 15],'Xlim', [-17.5 17.5]); 
export_fig fig1 -pdf -eps -r600 -painters 

Вот PDF версия Colorbar (надеюсь). Я не мог понять, как опубликовать версию EPS.

Как остановить Colorbar от идти непрерывно? Мне действительно нужно сделать какое-то редактирование, так как я не могу заставить Matlab делать стрелки в конце моего цветового бара, и мне, возможно, придется поиграть с текстом.

ответ

1

Единственный способ Мне удалось найти, чтобы остановить это, чтобы перекрасить каждый раздел цветовой полосы в Inkscape с дискретным цветом, который должен был быть в этом разделе. На самом деле, я думаю, что это только что вставило еще один прямоугольник этого цвета внутри этого окна, но он работал нормально. Это не сработало бы, если бы мои отметки не полностью разделяли каждый раздел colourbar.

Не очень хорошее решение, но это сработало для меня!

0

Вы можете печатать в векторном формате с

print(gcf, '-dpdf', 'fig.pdf'); 

Вы также можете установить renderer свойство фигуры в zbuffer для растрового участка.

set(gcf,'Renderer','zbuffer'); 

Оба дисплея и печать дискретного цвета.

+0

Средство рендеринга, используемое для отображения на экране, отличается от рендеринга, используемого для вывода на печать. Кроме того, вы только хотите использовать средство рендеринга живописцев для вывода векторного формата. – user664303

+0

Мне не нужен растровый сюжет. Он должен быть векторным. – emmalgale

1

Это проблема, связанная с тем, как Inkscape экспортирует растровые изображения, обсуждаемые here. Решение состоит в том, чтобы открыть файл обижая PDF (один выход по Inkscape) в текстовом редакторе, найдите строку (ы)

/Interpolate true 

и заменить его/их

/Interpolate false 
+0

Это может быть глупый вопрос, но как открыть pdf-файл в текстовом редакторе? Я пользователь Windows, на всякий случай это имеет значение. Я пробовал в различных редакторах, которые у меня есть, и это не показывает мне ничего понятного! – emmalgale

+0

Перетащите pdf-файл в окно редактора MATLAB - он будет открыт в виде текстового файла. Затем нажмите ctrl + F и введите '\ Interpolate true' в поле« Найти что »,' \ Interpolate false' в поле «Заменить на» и нажмите «Заменить все». Сохраните файл, затем откройте его в Adobe Reader и посмотрите, исчезла ли интерполяция. – user664303

+0

Хорошо, я открыл PDF-файл в окне редактора Matlab, но он по-прежнему похож на случайные символы во всем мире. Есть несколько строк разборчивого кода, и находка не нашла '\ Interpolate' нигде (я пробовал с нижним регистром« i ». Я должен делать что-то не так! – emmalgale

Смежные вопросы