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 使用os.remove删除文件夹时报错的解决方法
Jan 13 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
Jan 15 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
用python写测试数据文件过程解析
Sep 25 Python
python 实现return返回多个值
Nov 19 Python
OpenCV+Python--RGB转HSI的实现
Nov 27 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
Python为何不支持switch语句原理详解
Oct 21 Python
Python Pandas常用函数方法总结
Jun 15 Python
opencv深入浅出了解机器学习和深度学习
Mar 17 Python
Python Matplotlib绘制动画的代码详解
May 30 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之第五天
2006/10/09 PHP
php cout<<的一点看法
2010/01/24 PHP
php的大小写敏感问题整理
2011/12/29 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
PHP获取当前日期及本周一是几月几号的方法
2017/03/28 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
理解Javascript_05_原型继承原理
2010/10/13 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
如何在js代码中消灭for循环实例详解
2018/07/29 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
python判断字符串是否包含子字符串的方法
2015/03/24 Python
python实现将元祖转换成数组的方法
2015/05/04 Python
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
Python中turtle作图示例
2017/11/15 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
网络技术支持面试题
2013/04/22 面试题
CNC数控操作工岗位职责
2013/11/19 职场文书
办公室综合文员岗位职责范本
2014/02/13 职场文书
田径运动会开幕式及主持词
2014/03/28 职场文书
新闻发布会活动策划方案
2014/09/15 职场文书
2015年暑假工作总结
2015/07/13 职场文书