Matlab 中的 Geoshow - 打印到 tiff 文件时面部颜色发生变化
Geoshow in Matlab - facecolor changes when printing to tiff file
我的图是美国地图。我希望所有州的 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
是黑色的。
为什么会这样,我该如何解决?谢谢。
我还没有真正弄清楚为什么,但是当我将 DefaultFaceColor
设置为接近白色时,它起作用了...
'DefaultFaceColor',[1.000 0.9792 0.9792]
此错误在 MATLAB 2016a 中不存在。但是我在 MATLAB 2015a 中尝试了您的代码,我得到了以下 .tif 文件作为输出(您在问题中也对此进行了描述):
有一个解决方法可以解决这个问题。在使用 print
命令之前,写入以下行:
set(gcf, 'color', 'w', 'InvertHardCopy', 'off');
它给出了所需的 .tif 输出文件,如下所示:
我的图是美国地图。我希望所有州的 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
是黑色的。
为什么会这样,我该如何解决?谢谢。
我还没有真正弄清楚为什么,但是当我将 DefaultFaceColor
设置为接近白色时,它起作用了...
'DefaultFaceColor',[1.000 0.9792 0.9792]
此错误在 MATLAB 2016a 中不存在。但是我在 MATLAB 2015a 中尝试了您的代码,我得到了以下 .tif 文件作为输出(您在问题中也对此进行了描述):
有一个解决方法可以解决这个问题。在使用 print
命令之前,写入以下行:
set(gcf, 'color', 'w', 'InvertHardCopy', 'off');
它给出了所需的 .tif 输出文件,如下所示: