[话题讨论] MALAB如何在Excel中插入图表

[复制链接]
打浦桥程序员 发表于 2019-8-16 02:35:25
今天就聊一件比较有意思的事。


印象特别深刻的是,这周一下班回家的路上,我一直在想一个关于数据可视化的问题。

在曾经几篇文章中,我介绍过系统工程师的日常工作就是打电话开会。偶尔我还会自嘲,我哪里还有一点工程师的样子,分明就是一个客服罢了......

开会的话,就没办法避免要准备上会的材料。

准备上会材料是一件特别心累的事,尤其是碰到要制作数据图表的时候,比如前阵子一直在处理的测试进度。


我自认为在工作中我的数据处理能力还是不错的,因为一直是用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交互的源代码。

大家在这个脚本的基础上,就可以根据自己的需求进行局部的修改再加工。

而HaoPlot后续更深入的功能,包括图表的复制,文件生成等等,将会在知识星球中作详细介绍,以及代码分享。

以上就是今天的分享


作者介绍 | 打浦桥程序员
汽车行业工程师
目前在德国从事系统工程
公众号“打浦桥程序员
和你一起用MATLAB的角度看世界

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

6 条回复


pzfs1016 发表于 2019-8-20 23:02:48
看起来很强大!厉害!

打浦桥程序员 发表于 2019-8-21 00:25:57
pzfs1016 发表于 2019-8-20 23:02
看起来很强大!厉害!

谢谢支持!

qiuhuizuo 发表于 2019-10-6 13:58:06
文中提到了“比如之前我做的房价爬虫图表”请问你时自己写了爬虫程序么?

打浦桥程序员 发表于 2019-10-8 03:27:48
qiuhuizuo 发表于 2019-10-6 13:58
文中提到了“比如之前我做的房价爬虫图表”请问你时自己写了爬虫程序么? ...

对的,公众号里有爬虫的文章

qiuhuizuo 发表于 2019-10-8 13:24:39
打浦桥程序员 发表于 2019-10-8 03:27
对的,公众号里有爬虫的文章

冒昧邀请你回复一个帖子:https://www.ilovematlab.cn/forum.php?mod=viewthread&tid=581745&page=1&postid=3568995#pid3568995


简单说用了webread函数读取连接后,发现想要抓取的数据已经包含在读取回来的html代码中了。不明白后面为什么还需要用正则表达式。不知道你从零开始学习爬虫开发的过程中是否有过类似的疑问。

EWANTSE_pvso7 发表于 2020-2-8 13:08:08
简单粗暴的强大!!厉害~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表