这段时间一直忙于整理一本电子书,是关于汽车工程师的工作日常,其中的内容来自于我和知识星球的朋友们。
这本电子书目前仍在整理中,预计在5万字左右,如果顺利的话,将会于下周末在公众号上线,敬请期待。
那么今天就聊一件在写电子书之余一件比较有意思的事。
印象特别深刻的是,这周一下班回家的路上,我一直在想一个关于数据可视化的问题。
在曾经几篇文章中,我介绍过系统工程师的日常工作就是打电话开会。偶尔我还会自嘲,我哪里还有一点工程师的样子,分明就是一个客服罢了......
开会的话,就没办法避免要准备上会的材料。
准备上会材料是一件特别心累的事,尤其是碰到要制作数据图表的时候,比如前阵子一直在处理的测试进度。
我自认为在工作中我的数据处理能力还是不错的,因为一直是用MATLAB处理数据的,并且我的个人工具库中有上百个GUI小工具辅助我的工作。
不过一碰到制作图表,我就尴尬了。
通常情况下我的处理方式是,MATLAB处理完数据之后,写入Excel,然后在Excel中插入图表,选数据,调格式,换颜色,最后把图表复制到PPT中。比如之前我做的房价爬虫图表
可能就有朋友问了,哪用这么麻烦,MATLAB就可以直接作图啊
对于这类问题,我想用两张图的对比来回答
一点也不搭好吗!!!
其实,MATLAB是可以做出效果还不错的图表的,但是太费时了,比如之前我做的一份分析报告自动生成的功能,就花了不少时间写代码设计柱状图。
于是我就在想,有没有一种方法,可以像MATLAB plot一样便捷,数据处理完了之后不用换软件直接出图,同时还能兼顾像Excel图表一样的质量。
然后,我就又写了一个工具......
介绍一下这个新工具,叫HaoPlot,是Hao系列工具的新成员。
HaoPlot的作用,正如上文所描述的,能够实现在MATLAB中一键出图,不用切换软件,同时还能保证有Excel图表的品质。
HaoPlot支持超过70种不同的图表类型,比如柱状图,曲线,雷达图,饼状图,等等
而每一种图表类型还有数十种不同风格可以选择
也就是说,对于一组数据,通过HaoPlot能有上千种不同的形式来阐述你的观点。
目前HaoPlot还只是半成品,而之后的开发计划,并不打算做成GUI的形式,因为GUI界面的形式和功能开发的初衷相违背,如果想做成工具界面,大可以直接用Excel来调整。
所以,未来HaoPlot呈现的形式,只会以函数的形式,类似于原生的plot函数。不过会通过几个不同的输入参数来控制,比如图表的类型(ChartTyp)与图表风格(ChartStyle)
而HaoPlot的输出物,将会有三种不同的模式,分别是:
1) MATLAB环境下的figure
2) 保存为图片格式(jpg,bmp,png......)
3) 直接复制于剪切板,实现能够直接粘贴于文档中
接下来简单的聊一聊HaoPlot的功能逻辑
从前面展示的几张图中可以看出,这些结果图其实来自于Excel。不得不说,在数据可视化方面,Excel真的非常强大。
要同时兼顾MATLAB数据处理的高效性与Excel的数据可视化,这很容易会联想到MATLAB与Excel的交互。
在MATLAB中通过Excel.Application能够创建图表,在定义数据数据源之后,就可以通过设置ChartTyp,与ChartStyle进行图表的修改。
在这里分享一个小技巧,很多朋友在做MATLAB与Excel交互的时候,经常会苦于不知道该设置哪些参数,而根据我一直以来的经验,想要在网上去找目标参数名称,并不是一件容易的事。
我推荐大家善用Excel中的宏功能,通过录制宏,能将操作记录在宏代码中,然后通过查看宏,就能找到这一系列的参数都需要设置哪些数据。比如ChartTyp与ChartStyle。我在定位这两个参数过程中,并没有花费太多精力。
在Excel中生成目标图表之后,下一个功能需求就是,如何才能把这个图在MATLAB中生成。
我采用的方法是,将图表直接复制到剪切板中,然后在MATLAB环境下,读取剪切板数据,后续的操作就是常规的图像操作了。
最后聊一下关于这次的资料分享,公众号后台回复“ExcelPlot“,可以获取HaoPlot中MATLAB与Excel交互的源代码。
大家在这个脚本的基础上,就可以根据自己的需求进行局部的修改再加工。
以上就是今天的分享
作者介绍:打浦桥程序员
汽车行业工程师,目前在德国从事系统工程,公众号"打浦桥程序员",和你一起用MATLAB的角度看世界