在论文中,可视化结果往往很重要,毕竟文字太抽象,需要图片向审稿人直观的展现出我们的结果。我也写了俩篇论文和一篇专利的申请,其中也有一些画图的程序,因此记录,防止以后忘了。由于篇幅原因,文章就不贴代码,本文中所有的程序代码都在我的github

画图程序往往有很多版,毕竟论文写完了,导师会先看你图画的怎么样,你觉得画的挺好的,导师觉得不行,那你就得回去重新画结果图,这中间的程序会修改成很多版本,我会从最终版和中间被抛弃的一些版本看看结果可视化。先看最终版,如果你对后面抛弃的其他版本也感兴趣的话,也可以往下看,最后会看看专利中画的图。

最终版

最终版论文中,需要画图的有

  1. 具有明显特征的天文数据,因为我是天文数据处理方向,所以会有天文数据的光谱图。
  2. 论文中算法的分析,因为算法会将数据按照信噪比分开,因此对每堆数据都要分析,之后还要分析整体的性能。
  3. 与其他算法的对比,分别是从召回、精确和时间来分析的

天文数据

第一,画具有明显特征的天文数据,天文数据是高维,一般的都会有三千多维,一种就是算法中使用了很多发射线,需要画出全部的三千多维,这种会要求标出数据中的发射线信息,写法在文件drawSpectralChinesePaper.py中,画出的如图1所示。

图1. 全部光谱图

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

图2. 部分光谱图

算法性能分析

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

图3. 权重变化图

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

图4. 部分数据的召回率图

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

图5. 部分数据的精确率图

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

图6. 多个数据集中的精确率图

对比算法分析

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

图7. 对比算法的精确率和召回率图

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

图8. 对比算法的召回率图

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

图9. 对比算法的时间对比-颜色区分图

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

图10. 对比算法的时间对比-形状区分图

被抛弃的版本

抛弃的版本,我们依旧从上面的三个角度来说

天文数据

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

图11. 抛弃-部分光谱数据图

算法性能分析

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

图12. 抛弃-fitness变化图

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

图13. 抛弃-部分数据的精确率第一版图

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

图14. 抛弃-部分数据的精确率第二版图

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

图15. 抛弃-整体数据的精确率和召回率图

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

图16. 抛弃-整体数据的精确率图

对比算法分析

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

图17. 抛弃-对比精确率和召回率图

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

图18. 抛弃-对比精确率图

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

图19. 抛弃-对比精确率和召回率图

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

图20. 抛弃-对比时间图

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

图21. 抛弃-中文论文中时间的对比彩色图

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

图22. 抛弃-中文论文中时间的对比黑白图

专利图片

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

图23. 专利中部分数据的精确率和召回率图

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

图24. 专利中对比算法全部精确率和召回率图

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

图25. 专利中对比算法的时间图

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

图26. 抛弃-专利中对比算法的时间图

总结

结果可视化感觉还挺重要,毕竟文字的抽象,只有图片才能让人一眼就直观的看出你想要表达的东西,在论文中,我一般都是使用matplotlib和seaborn实现的,后期就不用seaborn,因为它感觉无法定制自己想要的图片,还是matplotlin大法才是最好的,可以随心所欲的画出自己想要的结果图片。本文中所有的程序代码都在我的github

论文结果图:matplotlib和seaborn实现的更多相关文章

  1. Python数据可视化matplotlib和seaborn

    Python在数据科学中的地位,不仅仅是因为numpy, scipy, pandas, scikit-learn这些高效易用.接口统一的科学计算包,其强大的数据可视化工具也是重要组成部分.在Pytho ...

  2. 机器学习——可视化绘图matplotlib和seaborn

    安装matplotlib和seaborn https://blog.csdn.net/Jia_jinjin/article/details/80428598 seaborn pairplot:特征两两 ...

  3. matplotlib 与 seaborn 中出现中文乱码的解决方法

      Linux.Mac osx 系统中,出现 matplotlib 或 seaborn 绘图中有中文乱码的情形,可以考虑使用以下方式处理: 到 anaconda 的 matplotlib 中查看是否有 ...

  4. 数据可视化matplotlib、seaborn、pydotplus

    如需转发,请注明出处:小婷儿的python  https://www.cnblogs.com/xxtalhr/p/10486560.html 一.数据可视化 data.mat 链接:https://p ...

  5. Matplotlib和Seaborn演示Python可视化

    数据可视化:就是使用图形图表等方式来呈现数据,图形图表能够高效清晰地表达数据包含的信息. Seaborn是基于matplotlib,在matplotlib的基础上进行了更高级的API封装,便于用户可以 ...

  6. word论文之图和表目录制作

    https://jingyan.baidu.com/article/91f5db1b3c539f1c7e05e341.html?qq-pf-to=pcqq.c2c 1.目标: (1)图目录. (2)表 ...

  7. python-绘图matplotlib

    <Python编程:从入门到实践>读书笔记 1.使用plot()绘制简单的折线图 import matplotlib.pyplot as plt va=[1,2,3,4,5] sq=[1, ...

  8. Python笔记12-----画图Matplotlib

    1.matplotlib:pyplot和pylab 如: import pylab as pl pl.figure(figsize=(8,6),dpi=100)[建立的图像大小和图的精度] pl.pl ...

  9. [复现论文程序图]High Speed Continuous Variable Source-Independent Quantum Random Number Generation

    这次的任务是复现该文章的图2(C),过程如下. ①翻译了整篇文章,断断续续,花了3-4天时间. ②阅读文章,并且记录下每个符号的意义,记在单独的1个word文档里. ③开始编程,用的matlab201 ...

随机推荐

  1. redis(九):Redis 哈希(Hash)(python)

    # -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host="123.56.74.190& ...

  2. 并发编程之synchronized锁(一)

    一.设计同步器的意义 多线程编程中,有可能会出现多个线程同时访问同一个共享.可变资源的情况,这个资源我们称之其为临界资源:这种资源可能是:对象.变量.文件等. 共享:资源可以由多个线程同时访问 可变: ...

  3. 开会时CPU 飙升100%同事们都手忙脚乱记一次应急处理过程

    告警 正在开会,突然钉钉告警声响个不停,同时市场人员反馈客户在投诉系统登不进了,报504错误.查看钉钉上的告警信息,几台业务服务器节点全部报CPU超过告警阈值,达100%. 赶紧从会上下来,SSH登录 ...

  4. 如果你每次面试前都要去背一篇Spring中Bean的生命周期,请看完这篇文章

    前言 当你准备去复习Spring中Bean的生命周期的时候,这个时候你开始上网找资料,很大概率会看到下面这张图: 先不论这张图上是否全面,但是就说这张图吧,你是不是背了又忘,忘了又背? 究其原因在于, ...

  5. DirectX11 With Windows SDK--35 粒子系统

    前言 在这一章中,我们主要关注的是如何模拟一系列粒子,并控制它们运动.这些粒子的行为都是类似的,但它们也带有一定的随机性.这一堆粒子的几何我们叫它为粒子系统,它可以被用于模拟一些比较现象,如:火焰.雨 ...

  6. 怎么训练出一个NB的Prophet模型

    上篇<神器の争>主要是介绍Prophet的特点以及prophet入门的一些注意事项,但离真正的实际运用还有段距离.本篇主要讲解实际运用中Prophet调参的主要步骤以及一些本人实际经验. ...

  7. Linux 终端最全推荐(建议收藏)

    本文来自网络整理,如有侵权,则可删除. 如果你跟我一样,整天要花大量的时间使用Linux命令行,而且正在寻找一些可替代系统自带的老旧且乏味的终端软件,那你真是找对了文章.我这里搜集了一些非常有趣的终端 ...

  8. .Net Core AES加解密

    项目中token在传输过程中采用了AES加密,  网上找到的两篇博文都有写问题,在这里记录一下.Net Core 2.2代码中AES加解密的使用: //AES加密 传入,要加密的串和, 解密key p ...

  9. Lun4R-CyBRICSCTF wp

    WEB Hunt (Web, Baby, 50 pts) 打断点,然后就一个一个被抓住了... 接着F12就出现了.(这个flag是白色的,藏在下面....)... RE Baby Rev 题目给了个 ...

  10. 【扩展推荐】Intervention/image 图片处理

    Intervention/image 是为 Laravel 定制的图片处理工具, 它提供了一套易于表达的方式来创建.编辑图片. 一.环境要求 二.安装及配置 下载地址:https://packagis ...