matlab锯齿交换,MATLAB折线消除锯齿平滑

MATLAB学习实战:深入剖析Figure的属性

很多人使用MATLAB是因为它具有强大的图形绘制功能,相比于C++,绘制二维或三维图形MATLAB简单到不用怎么去学习这门语言,只需要把数据导入,再从help的demo里copy几句话就可以轻松搞定。有过用C++绘制二维图形经历的人,一旦使用过MATLAB的绘图功能就会体会到这真是——神器。废话少说,今天的重点就是要分析MATLAB中Figure的各个属性,以及其含义(由于属性项目很多,这里只是介绍我感兴趣的几项,具体的可以参考MATLAB的The Properties of Figure/Axis/Line series)。

【问题】

MATLAB虽然可以方便地绘制出各种图形,但是对于二维的图形,会有锯齿,比较“难看”,怎么消除这些锯齿,让其看起来光滑些(Python/R等绘制的折线就比较光滑)?

【回答】

查阅了网上资料,发现要消除MATLAB的锯齿(使折线看起来比较平滑)有三种解决方法:

(1)      使用外部工具包/函数,如export_fig,在MATLAB File Exchange网站上有下载。利用这些函数可以把Figure保存为矢量和栅格格式,而且折线看起来比较光滑。把图1用export_fig导出为png图像,效果如下图所示:

相比于最初的图形,可以到折线平滑了许多,而且TickLabel加粗了一些,但是也可以发现图形的边框颜色有点儿太淡了,下面给出一个更好的方案-3!

(2)      对于高版本的MATLAB可以采用HG2模式,打开HG2模式的命令:feature(‘hg2’, ’on’);其实不要小看MATLAB。其实MATLAB隐藏了一个非常强大的绘图模式HG2。这个模式平时是隐藏的,只能在MATLAB启动时通过附加参数的形式开启,即可以将MATLAB的快捷方式中的指向目标由"...\...\MATLAB\R2013a\bin\MATLAB.exe"改为"...\...\MATLAB\R2013a\bin\MATLAB.exe"-hgVersion 2

(3)      不借组任何外面函数或HG2(我在R2011b上测试HG2模式,折线虽然有一定程序的平滑但是效果不是很明显),采用Figure中的LineSeries属性LineSmoothing进行折线的平滑,效果很好。下面进行实战测试。

【实战】

对于一个Figure,其包含了众多的属性,要想绘制出理想、漂亮的、符合自己要求的图形,了解这些属性的含义具有重要作用。一个Figure的属性有:

%  get(gcf)

Alphamap = [ (1 by 64) double array]

CloseRequestFcn = closereq

Color = [1 1 1]

Colormap = [ (64 by 3) double array]

CurrentAxes = [174.004]

CurrentCharacter =

CurrentObject = []<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值