在Matlab中使用postscript输出的离散颜色条

时间:2014-02-18 11:41:04

标签: matlab postscript colorbar

我在Matlab中创建了一个使用离散颜色条和自定义颜色图的图形。理想情况下,我想将此保存为后记图形(.eps),以便我可以在Inkscape中进行一些编辑。但是,当我以.eps格式保存时,在Inkscape(以及其他程序)中查看时,颜色条似乎是连续的。我需要做些什么来阻止这种情况?

我还尝试将图形保存为PDF似乎有效(在我用来查看/编辑它的任何程序中,colorbar都是离散的),但在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

这是colorbar的PDF版本(希望如此)。我无法弄清楚如何发布EPS版本。

如何阻止彩条连续移动?我真的需要进行一些编辑,因为我无法让Matlab在我的颜色条的末尾做箭头,我可能也需要使用文本。

3 个答案:

答案 0 :(得分:1)

这与Inkscape导出位图的问题有关,讨论here。解决方案是在文本编辑器中打开违规的pdf文件(由Inkscape输出一个),找到行

/Interpolate true

并用

替换它们
/Interpolate false

答案 1 :(得分:1)

我设法找到阻止它的唯一方法是使用该部分中的离散颜色为Inkscape中颜色条的每个部分重新着色。实际上,我认为这只是在该框中插入了另一种颜色的矩形,但它工作正常。如果我的标记没有完全分离颜色栏的每个部分,那么这将不起作用。

不是一个漂亮的解决方案,但它对我有用!

答案 2 :(得分:0)

您可以使用

以矢量格式打印
print(gcf, '-dpdf', 'fig.pdf');

您还可以将图形的renderer属性设置为zbuffer以获得栅格图。

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

显示和打印离散的颜色条。