matlab画条纹填充(Hatched Fill)图 填坑

matlab功能庞大,有时也是一个很好的画图工具,今天画图过程遇到了些问题。

义愤地写下此博客!!

因为突然想结合条形图来展示实验结果会更加地清晰,在matlab帮助里大概找了下,然后就去网上查。

网上大致地思路是这样的:Ben Hinkle写了一个函数applyhatch可以实现此功能,函数在这https://www.aos.wisc.edu/~dvimont/matlab/Graphics_Tools/applyhatch.html,也可以在MathWorks社区找到https://www.mathworks.com/matlabcentral/fileexchange/1736-hatched-fill-patterns?s_tid=gn_loc_drop。需要将两个函数代码都复制一下。

但是在较新版本(我是R2019a)的matlab中将applyhatch函数中用到的hardcopy函数去掉了,会提示 “未定义函数或变量 'hardcopy'”错误。

这时我又搜索了下解决办法,结果某些“大神”知道解决办法,但是就是不告诉你,修改了函数后整一个文件让你下载(花积分)。

然后我就去Google了一下,很简单的方式就可以解决,只需要将  bits = hardcopy(h,'-dzbuffer','-r0'); 这行报错代码换成 “bits = print('-RGBImage');”即可。

虽然最后的结果很差,图像失真很严重,并且不能调整。

其实这个函数就是将原来的图像复制了一遍,然后修改了原来的颜色填充为条纹填充,所以失真的不是条纹而只是边框和文字。

生成的黑白条形图
生成的黑白条形图
原图
原图

提一个简单的解决办法,生成条纹图之前可以将图片拉大,这样插入论文中不至于失真很严重。

写在最后:不论是技术或是知识,从外文翻译过来本来就已经很慢了,知道解决办法我们应当直接搬运过来,又不是原创,何必给自己人设卡。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐