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生成随机mac地址的方法
Mar 16 Python
编写简单的Python程序来判断文本的语种
Apr 07 Python
PyChar学习教程之自定义文件与代码模板详解
Jul 17 Python
深入理解Python3 内置函数大全
Nov 23 Python
python使用Tesseract库识别验证
Mar 21 Python
解决Django migrate No changes detected 不能创建表的问题
May 27 Python
python 使用re.search()筛选后 选取部分结果的方法
Nov 28 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
Jun 25 Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
python 爬取吉首大学网站成绩单
Jun 02 Python
浅谈Python数学建模之固定费用问题
Jun 23 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转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
node.js基础知识汇总
2020/08/25 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
python进阶教程之循环对象
2014/08/30 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
Python Numpy:找到list中的np.nan值方法
2018/10/30 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
Python GUI编程完整示例
2019/04/04 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
python打开音乐文件的实例方法
2020/07/21 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
一个入门级python爬虫教程详解
2021/01/27 Python
html5模拟平抛运动(模拟小球平抛运动过程)
2013/07/25 HTML / CSS
C语言中break与continue的区别
2012/07/12 面试题
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
2014企业年终工作总结
2014/12/23 职场文书
小学运动会开幕词
2015/01/28 职场文书
小学思品教学反思
2016/02/20 职场文书
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript