Matlab中的Geoshow - 打印到tiff文件时面部颜色发生变化
Posted
技术标签:
【中文标题】Matlab中的Geoshow - 打印到tiff文件时面部颜色发生变化【英文标题】:Geoshow in Matlab - facecolor changes when printing to tiff file 【发布时间】:2015-07-30 17:24:59 【问题描述】:我的图是美国地图。除非指定,否则我希望所有州的 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
是黑色的。
为什么会这样,我该如何解决?谢谢。
【问题讨论】:
我无法重建您的问题。您使用哪个版本?在什么系统上? 我无法使用 Matlab 2016a 重现您的问题 好的,谢谢@Sardar_Usama @EBH 2015b 在 Mac 上 - 我会更新到 2016 年看看是否有帮助 我也用 2016a,在 windows 上。 【参考方案1】:MATLAB 2016a 中不存在此错误。但是我在 MATLAB 2015a 中尝试了您的代码,并且得到了以下 .tif 文件作为输出(您在问题中也对此进行了描述):
有一种解决方法可以解决这个问题。在使用print
命令之前,写下下面这行:
set(gcf, 'color', 'w', 'InvertHardCopy', 'off');
它给出了所需的 .tif 输出文件,如下所示:
【讨论】:
【参考方案2】:我还没有真正弄清楚为什么,但是当我将 DefaultFaceColor
设置为几乎白色时,它可以工作...
'DefaultFaceColor',[1.000 0.9792 0.9792]
【讨论】:
以上是关于Matlab中的Geoshow - 打印到tiff文件时面部颜色发生变化的主要内容,如果未能解决你的问题,请参考以下文章
File "C: MATLAB7work mischouse. tiff”does not exist.