python使用matplotlib:subplot绘制多个子图
1 问题描述
matploglib 能够绘制出精美的图表, 有些时候, 我们希望把一组图放在一起进行比较, 有没有什么好的方法呢?
matplotlib 中提供的 subplot 可以很好的解决这个问题
2 subplot函数介绍
matplotlib下, 一个 Figure 对象可以包含多个子图(Axes), 可以使用 subplot() 快速绘制, 其调用形式如下 :
subplot(numRows, numCols, plotNum)
- 1
图表的整个绘图区域被分成
numRows行和numCols列然后按照从左到右,从上到下的顺序对每个子区域进行编号,左上的子区域的编号为1
plotNum参数指定创建的Axes对象所在的区域
如果 numRows = 2, numCols = 3, 那整个绘制图表样式为 2X3 的图片区域, 用坐标表示为
(1, 1), (1, 2), (1, 3)
(2, 1), (2, 2), (2, 3)
- 1
- 2
这时, 当 plotNum = 3 时, 表示的坐标为(1, 3), 即第一行第三列的子图
如果
numRows,numCols和plotNum这三个数都小于10的话, 可以把它们缩写为一个整数, 例如subplot(323)和subplot(3,2,3)是相同的.subplot在plotNum指定的区域中创建一个轴对象. 如果新创建的轴和之前创建的轴重叠的话,之前的轴将被删除.
3 示例程序
3.1 规则划分成3*3的
#!/usr/bin/env python
#!encoding=utf-8
import matplotlib
import matplotlib.pyplot as plt
if __name__ == '__main__':
for i,color in enumerate("rgby"):
plt.subplot(221+i, axisbg=color)
plt.show()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
3.2 不规则划分
但是有时候我们的划分并不是规则的, 比如如下的形式
这种应该怎么划分呢?
将整个表按照 2*2 划分
前两个简单, 分别是 (2, 2, 1) 和 (2, 2, 2)
但是第三个图呢, 他占用了 (2, 2, 3) 和 (2, 2, 4)
显示需要对其重新划分, 按照 2 * 1 划分
前两个图占用了 (2, 1, 1) 的位置
因此第三个图占用了 (2, 1, 2) 的位置
代码如下, 参照matplotlib绘制多个子图——subplot
#!/usr/bin/env python
#!encoding=utf-8
import matplotlib.pyplot as plt
import numpy as np
def f(t):
return np.exp(-t) * np.cos(2 * np.pi * t)
if __name__ == '__main__' :
t1 = np.arange(0, 5, 0.1)
t2 = np.arange(0, 5, 0.02)
plt.figure(12)
plt.subplot(221)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'r--')
plt.subplot(222)
plt.plot(t2, np.cos(2 * np.pi * t2), 'r--')
plt.subplot(212)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()
python使用matplotlib:subplot绘制多个子图的更多相关文章
- python使用matplotlib:subplot绘制多个子图 不规则画图
https://www.cnblogs.com/xiaoboge/p/9683056.html
- Python数据分析-Matplotlib图标绘制
Matplotlib介绍 Matplotlib是一个强大的Python绘图和数据可视化的工具包. Matplotlib的主要功能 Matplotlib是python中的一个包,主要用于绘制2D图形(当 ...
- Python使用matplotlib模块绘制多条折线图、散点图
用matplotlib模块 #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:折线图.散点图测试 ''' import rando ...
- python的matplotlib.pyplot绘制甘特图
博主本来就想简单地找一下代码,画一幅甘特图,结果百度之后发现甘特图的代码基本都不是用matplotlib库,但是像柱状图等统计图通常都是用这个库进行绘制的,所以博主就花了一些时间,自己敲了一份代码,简 ...
- python中matplotlib所绘制的图包含了很多的对象
上图中的top=‘off’意思是说顶部的grid lines 看不见. 去除frame,意思就是将这个矩形给去除掉,spine意思是脊柱 bars = plt.bar(pos, popularity, ...
- python使用matplotlib绘制折线图教程
Matplotlib是一个Python工具箱,用于科学计算的数据可视化.借助它,Python可以绘制如Matlab和Octave多种多样的数据图形.下面这篇文章主要介绍了python使用matplot ...
- python使用matplotlib在一个图形中绘制多个子图以及一个子图中绘制多条动态折线问题
在讲解绘制多个子图之前先简单了解一下使用matplotlib绘制一个图,导入绘图所需库matplotlib并创建一个等间隔的列表x,将[0,2*pi]等分为50等份,绘制函数sin(x).当没有给定x ...
- Python的工具包[2] -> matplotlib图像绘制 -> matplotlib 库及使用总结
matplotlib图像绘制 / matplotlib image description 目录 关于matplotlib matplotlib库 补充内容 Figure和AxesSubplot的生 ...
- 用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)
在用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)一文里,我讲述了通过爬虫接口得到股票数据并绘制出K线均线图形的方式,在本文里,将 ...
随机推荐
- 第三篇:异步请求遇上for循环怎么做
场景:读取Excel数据(地名),发送请求到百度地图,从返回的json格式数据取出坐标数据(逗号隔开的两个float型数值),拼接成了分号隔开的一个字符串data,接下来需要利用“百度坐标转换API” ...
- 关于priority_queue和sort()对结构体数组的排序
知乎的这个答案很清晰https://www.zhihu.com/question/35736022 #include <iostream> #include <algorithm&g ...
- 由Toolbar造成的ListView最后一项显示不全
懒得写了==附上参考博文 Android GirdView/Listview 最后一行显示不完整 - sex_34的专栏 - CSDN博客
- 将近半个小时,把一小段简短的汇编代码写成了C语言代码
我自己看,感觉好像一句一句翻译的,写得很是生硬,不如书上写的灵活 0040137E 8B7424 04 MOV ESI,DWORD PTR SS:[ESP+4]00401382 ...
- 2019-5-21-Total-Commander-显示文件包含文件名扩展
title author date CreateTime categories Total Commander 显示文件包含文件名扩展 lindexi 2019-5-21 11:37:6 +0800 ...
- FingerPrint Fuzzy Vault Matlab实践
本文实践了指纹识别生物特征识别研究论文A Fuzzy Vault Scheme的算法部分.原文请查看以下链接: Juels, A. & Sudan, M. Des Codes Crypt (2 ...
- 在vc2008 mfcC++中使用sqlite的示例
http://owlman.org/?p=890 在C++中使用sqlite的示例 2011年8月5日admin发表评论阅读评论 最近因为工作原因,终于使我有机会腾出时间来接触了一下SQLite数据库 ...
- 纯 CSS 实现实心三角形和空心三角形
一.实心三角形 1.代码 .div-angles{ width:; height:; border-style: solid; border-width:30px; border-color: tra ...
- ansible 安装 使用 命令 笔记 生成密钥 管控机 被管控机 wget epel源
ansible 与salt对比 相同 都是为了同时在多台机器上执行相同的命令 都是python开发 不同 agent(saltstack需要安装.ansible不需要) 配置(salt配置麻烦,a ...
- PAT甲级——A1003Emergency
As an emergency rescue team leader of a city, you are given a special map of your country. The map s ...