论文结果图: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 ...
随机推荐
- 数据清洗与准备知识图谱-《利用Python进行数据分析》
所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片.
- 用Canvas定时显示摄像头捕获的画像(HTML5)
需要实现一个功能,大意嘛,就是标题写的那个意思.虽然用户只要求在微信中实现即可,也就是可以用JSSDK.但是前端小哥哥脑袋一根筋,就想用原生的H5和JS实现. 网上铺天盖地的资料,可惜没有一个是可以用 ...
- 性能测试必备知识(4)- 使用 stress 和 sysstat
做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html stress 介绍 Linux 系统压力测试 ...
- Java中解决继承和接口默认方法冲突
1)超类优先.如果超类提供了一个具体方法,同名而且有相同参数类型发默认方法会被忽略. 2)接口冲突.如果一个超接口提供了一个默认方法,另一个接口提供了一个同名而且参数类型(不论是否是默认参数)相同的方 ...
- Linux系统中(CentOS 7)的用户和权限管理
目录 用户和组 用户信息文件 用户密码信息 相关命令 用户管理 组管理 密码管理 权限管理 文件的详细信息 文件权限 相关命令 用户和组 用户信息文件 /etc/passwd (1 2 3 4 5 6 ...
- three.js 数学方法之Matrix3
今天郭先生来说一说three.js的三维矩阵,这块知识需要结合线性代数的一些知识,毕业时间有点长,线性代数的知识大部分都还给了老师.于是一起简单的复习了一下.所有的计算都是使用列优先顺序进行的.然而, ...
- json:server 本地搭建
做个记录, 第一步,我们新建一个文件夹. 第二步,打开文件夹,执行git,没有git可以下载一个.或者用命令行工具进入到这个文件夹! 第三步,初始化json 在git里执行npm init --ye ...
- 01 . Git常用命令及方法和分支管理
原理 # Workspace:工作区 # Index / Stage:暂存区 # Repository:仓库区(或本地仓库) # Remote:远程仓库 本地分支关联远程 git branch --s ...
- python爬虫常用headers设置
import random import re def headers(url, use='pc'): pc_agent = [ "Mozilla/5.0 (Macintosh; U; In ...
- Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|
内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...