Python利用matplotlib做图中图及次坐标轴的实例


Posted in Python onJuly 08, 2019

图中图

准备数据

import matplotlib.pyplot as plt

fig = plt.figure()
x = [1, 2, 3, 4, 5, 6, 7]
y = [1, 3, 4, 2, 5, 8, 6]

- 大图

首先确定大图左下角的位置以及宽高:

注意,4个值都是占整个figure坐标系的百分比。在这里,假设figure的大小是10x10,那么大图就被包含在由(1, 1)开始,宽8,高8的坐标系内。

# below are all percentage
left, bottom, width, height = 0.1, 0.1, 0.8, 0.8
ax1 = fig.add_axes([left, bottom, width, height]) # main axes
ax1.plot(x, y, 'r')
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax1.set_title('title')

将大图坐标系添加到figure中,颜色为r(red),取名为title:

Python利用matplotlib做图中图及次坐标轴的实例

- 小图

接着,我们来绘制左上角的小图,步骤和绘制大图一样,注意坐标系位置和大小的改变

ax2 = fig.add_axes([0.2, 0.6, 0.25, 0.25]) # inside axes
ax2.plot(y, x, 'b')
ax2.set_xlabel('x')
ax2.set_ylabel('y')
ax2.set_title('title inside 1')

Python利用matplotlib做图中图及次坐标轴的实例

最后,我们来绘制一个右下角的小图。这里我们采用一种更简单方法,即直接往plt里添加新的坐标系

# different method to add axes
####################################
plt.axes([0.6, 0.2, 0.25, 0.25])
plt.plot(y[::-1], x, 'g')
plt.xlabel('x')
plt.ylabel('y')
plt.title('title inside 2')

注意对y进行了逆序处理

Python利用matplotlib做图中图及次坐标轴的实例

次坐标轴

有时候我们会用到次坐标轴,即在同个图上有第2个y轴存在。同样可以用matplotlib做到

第一个Y 坐标

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 10, 0.1)
y1 = 0.05 * x**2
y2 = -1 *y1

fig, ax1 = plt.subplots()

第二个坐标轴

对ax1调用twinx()方法,生成如同镜面效果后的ax2

接着进行绘图, 将 y1, y2 分别画在 ax1, ax2 上:

ax2 = ax1.twinx()  # mirror the ax1
ax1.plot(x, y1, 'g-')
ax2.plot(x, y2, 'b-')

ax1.set_xlabel('X data')
ax1.set_ylabel('Y1 data', color='g')
ax2.set_ylabel('Y2 data', color='b')

plt.show()

Python利用matplotlib做图中图及次坐标轴的实例

同理:改变y2生成图像

Python利用matplotlib做图中图及次坐标轴的实例

以上这篇Python利用matplotlib做图中图及次坐标轴的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
Python查找两个有序列表中位数的方法【基于归并算法】
Apr 20 Python
python实现守护进程、守护线程、守护非守护并行
May 05 Python
python 2.7.13 安装配置方法图文教程
Sep 18 Python
Python读取YUV文件,并显示的方法
Dec 04 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
Python3 tkinter 实现文件读取及保存功能
Sep 12 Python
Django实现文件上传和下载功能
Oct 06 Python
python中实现词云图的示例
Dec 19 Python
用python制作个音乐下载器
Jan 30 Python
在Django中使用MQTT的方法
May 10 Python
Python Pandas知识点之缺失值处理详解
May 11 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 #Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 #Python
Python实现的统计文章单词次数功能示例
Jul 08 #Python
用python建立两个Y轴的XY曲线图方法
Jul 08 #Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 #Python
简单了解python的内存管理机制
Jul 08 #Python
python用for循环求和的方法总结
Jul 08 #Python
You might like
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
node 使用 async 控制并发的方法
2018/05/07 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
利用Vue实现简易播放器的完整代码
2020/12/30 Vue.js
python编程开发之类型转换convert实例分析
2015/11/13 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
python cumsum函数的具体使用
2019/07/29 Python
Python while循环使用else语句代码实例
2020/02/07 Python
python如何处理程序无法打开
2020/06/16 Python
10张动图学会python循环与递归问题
2021/02/06 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
文职个人求职信范文
2013/09/23 职场文书
生产部统计员岗位职责
2014/01/05 职场文书
期末自我鉴定
2014/01/23 职场文书
初中生自我评价
2014/02/01 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python
MySQL常见优化方案汇总
2022/01/18 MySQL
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS