Matlab中的Geoshow - 打印到tiff文件时facecolor会发生变化

时间:2015-05-19 03:24:56

标签: image matlab matlab-figure save-image

我的身影是美国的地图。我希望所有州和#39;除非另有说明,否则facecolor为白色:

ax = usamap('conus');
states = shaperead('usastatelo', 'UseGeoCoords', true,'Selector',{@(name) ~any(strcmp(name,{'Alaska','Hawaii'})), 'Name'});
faceColors = makesymbolspec('Polygon', {'Name','Washington','FaceColor','red'}, {'Name','Alabama','FaceColor','red'});
geoshow(ax, states, 'DisplayType', 'polygon', 'SymbolSpec', faceColors,'DefaultFaceColor','w','DefaultEdgeColor','black')
framem off; gridm off; mlabel off; plabel off

但是当我用它打印时:

print -r600 -dtiff MyMap.tif

并打开图,一些州和#39;东边的facecolor是黑色的。

为什么会这样,我该如何解决?谢谢。

2 个答案:

答案 0 :(得分:4)

MATLAB 2016a 中不存在此错误。但是我在 MATLAB 2015a 中尝试了你的代码,我得到了以下 .tif 文件作为输出(你在问题中也有描述):

enter image description here

有一种解决方法可以做到这一点。在使用print命令之前,请写下以下行:

set(gcf, 'color', 'w', 'InvertHardCopy', 'off');

,它提供了所需的 .tif 输出文件,如下所示:

required output

答案 1 :(得分:1)

我还没弄清楚为什么,但是当我将DefaultFaceColor设置为几乎是白色时,它可以正常运行......

'DefaultFaceColor',[1.000 0.9792 0.9792]