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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
May 02 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
Feb 16 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
Jan 11 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
深入理解Python异常处理的哲学
Feb 01 Python
简单了解pytest测试框架setup和tearDown
Apr 14 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
May 03 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
Oct 15 Python
python实现在列表中查找某个元素的下标示例
Nov 16 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生成EXCEL的东东
2006/10/09 PHP
提高php运行速度的一些小技巧分享
2012/07/03 PHP
修改destoon会员公司的伪静态中的com目录的方法
2014/08/21 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
Yii2框架实现注册和登录教程
2016/09/30 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
跨浏览器的事件对象介绍
2012/06/27 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
python复制与引用用法分析
2015/04/08 Python
Python中的filter()函数的用法
2015/04/27 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
python3 读取Excel表格中的数据
2018/10/16 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
就职演讲稿范文
2014/05/19 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
教书育人演讲稿
2014/09/11 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
windows server2008 开启端口的实现方法
2022/06/25 Servers