论文结果图:matplotlib和seaborn实现
在论文中,可视化结果往往很重要,毕竟文字太抽象,需要图片向审稿人直观的展现出我们的结果。我也写了俩篇论文和一篇专利的申请,其中也有一些画图的程序,因此记录,防止以后忘了。由于篇幅原因,文章就不贴代码,本文中所有的程序代码都在我的github。
画图程序往往有很多版,毕竟论文写完了,导师会先看你图画的怎么样,你觉得画的挺好的,导师觉得不行,那你就得回去重新画结果图,这中间的程序会修改成很多版本,我会从最终版和中间被抛弃的一些版本看看结果可视化。先看最终版,如果你对后面抛弃的其他版本也感兴趣的话,也可以往下看,最后会看看专利中画的图。
最终版
最终版论文中,需要画图的有
- 具有明显特征的天文数据,因为我是天文数据处理方向,所以会有天文数据的光谱图。
- 论文中算法的分析,因为算法会将数据按照信噪比分开,因此对每堆数据都要分析,之后还要分析整体的性能。
- 与其他算法的对比,分别是从召回、精确和时间来分析的
天文数据
第一,画具有明显特征的天文数据,天文数据是高维,一般的都会有三千多维,一种就是算法中使用了很多发射线,需要画出全部的三千多维,这种会要求标出数据中的发射线信息,写法在文件drawSpectralChinesePaper.py中,画出的如图1所示。

还有一种就是只需要部分发射线,因此并不需要在一张图中画出所有的发射线,只需要选取一些具有明显特征的波长段画出来,如果选取的特征相隔很远,我们就需要使用子图来画,写法在文件drawSpectralEnglishPaper.py,画出的如图2所示。

算法性能分析
第二,就是算法性能分析程序,分析一般都是分析算法中参数的变化,算法的精确率和召回率,我分为部分数据的召回和精确,还有就是整体数据的召回和精确。先来看算法中权重的改变,画出的图3如下所示,权重有俩种,一种是绿色的实线,一种是紫色的虚线,区分也较为明显,这种色调较为明快,写法在文件drawAlgorithmWeight.py。

再看部分数据的召回和整体,色调较暗,并且也需要良好的辨识度,横纵坐标都需要标识清楚,并且字体要清晰可见,召回率图写法在文件picAllRecall.py,召回率画出的如图4所示。

精确率图在文件picAllPrecision.py,精确率画出的如图5所示

还有一种就是算法中在多个数据集中的精确率可视化,如图6所示,虚线代表该数据集中全部数据的精确率,绿色、蓝色和橙色柱形代表数据集中部分数据的精确率,代码在文件drawPrecisionInFiveDataEnglishPaper.py。

对比算法分析
第三,就是对比实现分析,一般论文这里都非常重要,体现出论文算法的优势,我分析的一般只是召回率、精确率和时间,下面我们先分析精确率和召回率,之后再来看时间。精确率和召回率如果可以放在一起的话,那么就可以放在一起来展示,如下图7所示,一共对比了六种算法,论文算法WEDA要加粗表示,令别人一眼就看出论文算法的性能位置,图中还有虚线和实线来表示召回和精确,图中因为没有位置了,所以只能在论文中对图中的实线和虚线进行说明,代码在文件comparedPrecisionAndRecallEnglishPaper.py。

如果你对比的太多了,精确率和召回率放在一张图的话,就会显得很乱,让人看不清,那么就需要重新写一个来画图,还有就是如果期刊要求图中不能出现彩色来区别类别的话,就需要其他的方式来区分,如图8所示,论文算法是FDCC,能让人清晰的看到,并且每种算法都能被区分开,用的就是不同的柱形,代码在文件comparedRecallChinesePaper.py。

下面就是对比时间,我们依然会有俩种画法,一种就是彩色区分,还有一种就是形状区分,其实和上面的颜色都是一样,第一种就是彩色,如图9所示,代码就是文件comparedTimeEnglishColo.py。

还有一种就是形状区分,自己在画图的时候需要注意,该如何有效并且清晰的区分出所有的算法,如图10所示,图中采用的就是虚线和实线,代码就是文件comparedTimeChinesePaper.py。

被抛弃的版本
抛弃的版本,我们依旧从上面的三个角度来说
天文数据
第一,画有特征的天文数据,如图11所示,这在图中有一个小框,来表示另一条比较偏远的发射线,但是这样做的画,很容易让人误解它是图中哪段数据的放大,因此后来被抛弃不用了,代码在文件abandonDrawSpectral.py。

算法性能分析
第二,算法性能分析,主要就是算法中的参数、召回和精确,并且召回和精确是分整体和部分的。先来看参数,分析其性能和参数的联系,其中也有后来被抛弃不分析的参数,就是fitness的大小,如图12所示,我一直觉得这图很清晰简洁,很喜欢这图的颜色分布。代码在文件abandonFitnessAlgorithm.py。

再来看部分数据的精确率,这个分好多版本,我们来看俩个版本的,先看图13,首先这张图是有底纹的,后来觉得不好看,就把底纹去了,并且这是折线图,但是图中的点太多了,密密麻麻的,不美观,并且图示例也比较大,影响整体的观感,后来就被抛弃了,代码在文件abandonRecall.py。

后来就改了上面的缺点,变成了图14,这张图个人感觉没啥缺点,不要看其中表示的数据变了,那个没关系,主要看图,给人的感官,个人感觉挺好,可能就是颜色搭配不好,应该使用暗色调更好一点,后来就被抛弃了。代码在文件middleAbandonPicAllRecall.py。

整体数据的精确率和召回率,如图15,这张图如今看来也是很不好看的,缺点很多,线条画的不美观,点过多,数据放的太多,让人看不清自己想要看的,显得很杂乱,这样的画,得分开画最好,代码在文件abandonAllPrecisionAndRecall.py

后来分开,但是还是要看一下整体得精确率是如何变化,分析一下算法在数量多少的时候会达到稳定的状态,就有了下面图16,但是这张图过于单调简单,反应不出什么信息内容,放在论文中,会让别人认为你在凑篇幅,就抛弃了,代码在文件abandonAllPrecision.py。

对比算法分析
我的对比算法都喜欢放在一张图中来看,先来看对比精确率和召回率,个人感觉图17最大的缺点就是不突出自己的算法,这样无法让别人无法一眼就看出论文算法性能如何,所以后来就抛弃了,代码在文件middleAbandonComparedPreRecallEnglishPaper.py。

图18这是另外一篇中文论文中的,展示对比算法的精确率,但是这张图总感觉很单调,缺少一种紧凑感,代码在文件abandonPreciChinesePaper.py。

后来为了添加信息,就放入了全部信息,画出了图19,不过感觉这张图对比不出来,可能最主要的就是因为这是一张折线图,后来就改成了柱状图了,代码在文件abandonComparedPrecisionAndRecallChinesePaper.py。

最后就是对比算法的时间,个人感觉图20画的其实还行,我本以为不用常规柱状图就不那么单调,所以就把柱状横过来了,后来被改了,论文中的图片还是严肃一点好,代码在文件abandonComparedTimeEnglishColo.py。

中文论文中时间的对比,先是直接用的英文论文中的图片程序,画出来的就是图21,但是期刊要求的是图片都是黑白的,不能是色彩图片,因此后来就被抛弃,代码在文件abandonComparedTimeChineseColo.py。

最终改成了黑白的,变成了图22,但是后来还是被打回来了,对比算法应该是对比各算法,突出的就是算法之间的变化,应该将横坐标变成数据,然后算法在一起比较,所以被抛弃了,代码在文件abandonComparedTimeChinesePaper.py。

专利图片
专利中的图片都是黑白色,有很多图片都是直接使用论文中的程序画出来就行了,基本都是变色和将算法区分开使用到的线条形状就行了。我们先来看部分数据的精确率和召回率,俩张图都是一样的程序,因此这里只贴出精确率的图片,图23来看,就是黑白色,并且变化线条形状,代码在文件PatentComparisonAlgorithmPrec.py。

后面的对比算法中全部精确率和召回率也是如此,如图24,当然专利中的算法依旧要突出,代码在文件PatentComparisonAlgorithmPrecAndRecall.py。

再看对比算法的时间,个人感觉图25还是很好看的,也很清晰的对比出各算法的时间,并且各柱形都有明显的区别,代码在文件PatentComparisonAlgorithmTime.py。

在画时间的时候,其实还有一张被抛弃的图片,就是图26,这张图也挺好看的,色彩比较淡,但是整体感观很高,就是它不是黑白的,因此不能放入其中,代码在文件abandonPatentComparisionAlgorithmChinese.py。

总结
结果可视化感觉还挺重要,毕竟文字的抽象,只有图片才能让人一眼就直观的看出你想要表达的东西,在论文中,我一般都是使用matplotlib和seaborn实现的,后期就不用seaborn,因为它感觉无法定制自己想要的图片,还是matplotlin大法才是最好的,可以随心所欲的画出自己想要的结果图片。本文中所有的程序代码都在我的github。
论文结果图:matplotlib和seaborn实现的更多相关文章
- Python数据可视化matplotlib和seaborn
Python在数据科学中的地位,不仅仅是因为numpy, scipy, pandas, scikit-learn这些高效易用.接口统一的科学计算包,其强大的数据可视化工具也是重要组成部分.在Pytho ...
- 机器学习——可视化绘图matplotlib和seaborn
安装matplotlib和seaborn https://blog.csdn.net/Jia_jinjin/article/details/80428598 seaborn pairplot:特征两两 ...
- matplotlib 与 seaborn 中出现中文乱码的解决方法
Linux.Mac osx 系统中,出现 matplotlib 或 seaborn 绘图中有中文乱码的情形,可以考虑使用以下方式处理: 到 anaconda 的 matplotlib 中查看是否有 ...
- 数据可视化matplotlib、seaborn、pydotplus
如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10486560.html 一.数据可视化 data.mat 链接:https://p ...
- Matplotlib和Seaborn演示Python可视化
数据可视化:就是使用图形图表等方式来呈现数据,图形图表能够高效清晰地表达数据包含的信息. Seaborn是基于matplotlib,在matplotlib的基础上进行了更高级的API封装,便于用户可以 ...
- word论文之图和表目录制作
https://jingyan.baidu.com/article/91f5db1b3c539f1c7e05e341.html?qq-pf-to=pcqq.c2c 1.目标: (1)图目录. (2)表 ...
- python-绘图matplotlib
<Python编程:从入门到实践>读书笔记 1.使用plot()绘制简单的折线图 import matplotlib.pyplot as plt va=[1,2,3,4,5] sq=[1, ...
- Python笔记12-----画图Matplotlib
1.matplotlib:pyplot和pylab 如: import pylab as pl pl.figure(figsize=(8,6),dpi=100)[建立的图像大小和图的精度] pl.pl ...
- [复现论文程序图]High Speed Continuous Variable Source-Independent Quantum Random Number Generation
这次的任务是复现该文章的图2(C),过程如下. ①翻译了整篇文章,断断续续,花了3-4天时间. ②阅读文章,并且记录下每个符号的意义,记在单独的1个word文档里. ③开始编程,用的matlab201 ...
随机推荐
- bzoj4459[Jsoi2013]丢番图
bzoj4459[Jsoi2013]丢番图 题意: 丢番图方程:1/x+1/y=1/n(x,y,n∈N+) ,给定n,求出关于n的丢番图方程有多少组解.n≤10^14. 题解: 通分得yn+xn=xy ...
- 为什么大家都在用Fiddler?
在我们做接口测试的时候,经常需要验证发送的消息是否正确,或者在出现问题的时候,查看手机客户端发送给server端的包内容是否正确,就需要用到抓包工具.常用的抓包工具有fiddler.wireshark ...
- 大厂0距离:网易 Linux 运维工程师面试真题,内含答案
作为 Linux 运维工程师,进入大公司是开启职业新起点的关键,今天马哥 linux 运维及云计算智囊团的小伙伴特别分享了其在网易面试 Linux 运维及云计算工程师的题目和经历,希望对广大 Linu ...
- 用Python爬取双色球开奖信息,了解一下
1工具 2具体方法 1.使用python2.7编写爬取脚本 这里除了正常的爬取操作,还增加了独立的参数设定.如果没有参数,爬取的数据就在当前目录下:如果有参数,可以设定保存目录.保存文件名后缀 ...
- 自已动手作图搞清楚AVL树
@ 目录 一.背景 二.平衡二分搜索树---AVL树 2.1 AVL树的基本概念 结点 高度 平衡因子 2.2 AVL树的验证 三.旋转操作 3.1 L L--需要通过右旋操作 3.2 R R--需要 ...
- 轻量级分布式延时任务处理组件easyTask-L-入门篇
今天给大家介绍一款新武器.我自研的一个java组件easyTask-L.这个是做啥的呢?我之前研发了一款单机版本的easyTask,这次是要介绍另外一款easyTask-L.区别就是后者支持分布式环境 ...
- .net core options 依赖注入的方式
options 依赖注入的方式 public class JwtSettingsOptions { public const string JwtSettings = "JwtSetting ...
- iPhone截长图的方法
iPhone手机暂没有长图截取功能,所以我们只能通过别的方式进行长图截取. (2020年4月10日更新) ios13目前可以截长图了,不过只能在Safari中进行长图截取,而且存储形式为pdf格式,下 ...
- rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm出现error: open of vsftpd-3.0.2-22.el7.x86_64.rpm failed: No such file or directory的解决方法
情况一: 出现如图问题, 我当时的问题是通过安装rpmbuild工具软件解决的 以前制作rpm时,没有遇到过这个问题,几经搜索也没有解决.后来发现当前的centos没有安装 rpmbuild 工具软件 ...
- 面试题之----禁掉cookie的session使用方案
方式一:通过 url 传值,把session id附加到url上 缺点:整个站点中不能有纯静态页面,因为纯静态页面session id 将无法继续传到下一页面 方式二:通过隐藏表单,把session ...