【问题标题】:Geoshow in Matlab - facecolor changes when printing to tiff fileMatlab中的Geoshow - 打印到tiff文件时面部颜色发生变化
【发布时间】: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 上。

标签: image matlab matlab-figure save-image


【解决方案1】:

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

有一种解决方法可以解决这个问题。在使用print 命令之前,写下下面这行:

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

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

【讨论】:

    【解决方案2】:

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

    'DefaultFaceColor',[1.000 0.9792 0.9792]
    

    【讨论】:

      猜你喜欢
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 2017-09-24
      • 2016-10-22
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      相关资源
      最近更新 更多