matplotlib添加子图(拼图功能)
我们已经知道,matplotlib是python中的一个十分好用的作图库,它的简单的使用方法可以在之前的随笔中找到。传送门:https://www.cnblogs.com/chester-cs/p/11879444.html
之前没有涉及到的是一个用途十分广泛的功能:子图(拼图功能),想象我们有四个对比曲线图,是一个问题不同的算法实现结果。假如一个图接一个图画的画太拖沓,我们又不想一上来就画在同一个画布上,那么这时我们就可以使用拼图功能。
没时间解释了,直接上代码。以四种排序算法的运行时间曲线为例:
fig = plt.figure() # 生成新的画布fig
fig.set_size_inches(18.5, 10.5) # 调整画布为合适大小 ax1 = fig.add_subplot(221) # 关键点,我们考虑在画布中加入一个一个的子图,(221这种排列的含义不必多解释了吧)
plt.plot(Size,INSERTSORT_Mean,'b')
plt.plot(Size,INSERTSORT_Mean,'ro')
plt.grid() # 画网格
plt.xlabel("Data Size")
plt.ylabel("Time Cost /s")
plt.title("INSERTSORT Timecost Mean") # 加上标题 ax2 = fig.add_subplot(222)
plt.plot(Size,MERGE_SORT_Mean,'b')
plt.plot(Size,MERGE_SORT_Mean,'ro')
plt.grid()
plt.xlabel("Data Size")
plt.ylabel("Time Cost /s")
plt.title("MERGESORT Timecost Mean") ax3 = fig.add_subplot(223)
plt.plot(Size,HEAPSORT_Mean,'b')
plt.plot(Size,HEAPSORT_Mean,'ro')
plt.grid()
plt.xlabel("Data Size")
plt.ylabel("Time Cost /s")
plt.title("HEAPSORT Timecost Mean") ax4 = fig.add_subplot(224)
plt.plot(Size,QUICKSORT_Mean,'b')
plt.plot(Size,QUICKSORT_Mean,'ro')
plt.grid()
plt.xlabel("Data Size")
plt.ylabel("Time Cost /s")
plt.title("QUICKSORT Timecost Mean")
效果是这样的:
上面一大串代码,但关键点很少:
- 生成一个独立的画布对象,不影响其他模块
- 在画布上一个一个的添加子图对象(subplot)
- 每次添加新的子图,画笔就会移动到新的子图上
只要遵循以上的步骤,就能实现作图的拼接了~
matplotlib添加子图(拼图功能)的更多相关文章
- [vs2008]Visual Studio 2008 SP1添加或删除功能提示查找SQLSysClrTypes.msi文件
前言 今天接到领导布置的一个任务,是之前同事负责的项目.离职了,现在客户有些地方需要修改,由于我之前参与过,就落在我的头上了. 然后我就把代码弄了过来,打开发现其中需要用到水晶报表.(我觉得不好用,不 ...
- 百度地图API 批量添加 带检索功能的信息窗口
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- react.js 之 批量添加与删除功能
最近做的CMS需要用到批量添加图片的功能:在添加文件的容器盒子内,有两个内容,分别是:添加按钮与被添加的选择文件组件. 结构分析: 被添加的组件,我们称为:UploadQiNiuFiles(七牛文件上 ...
- 利用nginx向现有网站添加登录验证功能(不添加修改现有网站代码)
在不改变现有网站代码的前提下加入验证功能: 1.假设现有网站后端nodejs,端口3000,nginx配置如下 server { listen 80; server_name localhost; l ...
- Web开发从零单排之二:在自制电子请帖中添加留言板功能,SAE+PHP+MySql
在上一篇博客中介绍怎样在SAE平台搭建一个html5的电子请帖网站,收到很多反馈,也有很多人送上婚礼的祝福,十分感谢! web开发从零学起,记录自己学习过程,各种前端大神们可以绕道不要围观啦 大婚将至 ...
- linux下为用户添加sudo命令功能
为用户添加sudo命令功能: 打开etc下的sudoers文件 vi /etc/sudoers 在 root ALL=(ALL) ALL 下面添加如下一行,然后保存关闭 hadoop ALL= ...
- 利用反馈字段给帝国cms添加留言板功能(图文教程)
帝国cms的插件中提供信息反馈字段,很多人却不会用.这里谢寒教大家如何来给自己的帝国cms网站添加留言板功能 1.找到添加地址 2.添加字段 3.你可以在字段中添加多种字段类型(有文本域,单行文本框, ...
- 为Pythonic论坛添加一个“专题”功能(续)
上篇博文<为Pythonic论坛添加一个“专题”功能>,在模板的层次上对发帖进行了限制.也就是根据用户是否拥有权限来决定是否显示发帖框. 但是自从这么“投机取巧”的写完模板后,整夜辗转反侧 ...
- 使用prismjs为网站添加代码高亮功能
prismjs 是一款轻量.可扩展的代码语法高亮库,使用现代化的 Web 标准构建,使用 Prismjs 可以快速为网站添加代码高亮功能,支持超过113中编程语言,还支持多种插件,是简洁.高效的代码高 ...
随机推荐
- 单词数(hdu2072)
这道题用到了(STL初步)集合:Set 的知识点.同时,也用到了stringstream 的知识点,还用到了getline(cin,line)的知识点. #include<iostream> ...
- web.xml——Error:cvc-complex-type.2.4.a: Invalid content was found starting with element
配置web.xml文件时报错 错误:cvc-complex-type.2.4.a: Invalid content was found starting with element 详细报错信息:cvc ...
- Java 对象的封装,继承,抽象,接口写法
面向对象的封装写法 关键字 private class A { private int a=1; private void work() ...
- S32K142学习记录_day1
因为项目的原因接触了NXP的S32K142芯片 从官网上download S32DS 安装 找数据手册 发现都是英文的只能看着翻译了 今天看的是关于clock配置的 当clock需要进行切换的时候必须 ...
- ElementUi 全选功能实现
每次使用官方的示例都会被坑一下(可能是我的理解不够透彻吧,不记录一下保不准下次依旧会忘), 故此今天做个Demo 记录一下.本次仍然使用官网给出的示例,只做理解性的说明. 1.此处先给出官方示例代码: ...
- Python装饰器的一点解读
版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/12977127.html 作者:窗户 ...
- (一)用less+gulp+requireJs 搭建项目(了解less)
项目完结 做个总结: 公司网站重构,整站都需要重写,终于有机会接触下 less,gulp和requireJs,因为以前的工作就是写几个活动页,并没有机会用这些工具,废话不多说,先看下完成后的项目目录: ...
- Java实现 蓝桥杯 算法提高 日期计算
算法提高 日期计算 时间限制:1.0s 内存限制:256.0MB 问题描述 已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况.尤其是逢百年不闰,逢400年闰的情 ...
- Java实现 蓝桥杯 算法训练 排序
算法训练 排序 时间限制:1.0s 内存限制:512.0MB 问题描述 编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列. 输入格式:输入只有一行,即三个整数,中间用空格隔开. ...
- Java实现 LeetCode 468 验证IP地址
468. 验证IP地址 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址. IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(&qu ...