我的身影是美国的地图。我希望所有州和#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
是黑色的。
为什么会这样,我该如何解决?谢谢。
答案 0 :(得分:4)
MATLAB 2016a 中不存在此错误。但是我在 MATLAB 2015a 中尝试了你的代码,我得到了以下 .tif 文件作为输出(你在问题中也有描述):
有一种解决方法可以做到这一点。在使用print
命令之前,请写下以下行:
set(gcf, 'color', 'w', 'InvertHardCopy', 'off');
,它提供了所需的 .tif 输出文件,如下所示:
答案 1 :(得分:1)
我还没弄清楚为什么,但是当我将DefaultFaceColor
设置为几乎是白色时,它可以正常运行......
'DefaultFaceColor',[1.000 0.9792 0.9792]