4

我的图是美国地图。除非指定,否则我希望所有州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

打开图,facecolor东边的一些州是黑色的。

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

4

2 回答 2

4

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

在此处输入图像描述

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

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

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

所需输出

于 2016-10-31T22:16:16.740 回答
1

我还没有真正弄清楚为什么,但是当我将其设置DefaultFaceColor为几乎白色时,它就可以了...

'DefaultFaceColor',[1.000 0.9792 0.9792]
于 2015-05-19T06:08:18.047 回答