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访问sqlserver示例
Feb 10 Python
python+opencv实现动态物体识别
Jan 09 Python
python中ASCII码和字符的转换方法
Jul 09 Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
Python实现对adb命令封装
Mar 06 Python
python datetime处理时间小结
Apr 16 Python
python如何查看安装了的模块
Jun 23 Python
OpenCV+python实现实时目标检测功能
Jun 24 Python
flask开启多线程的具体方法
Aug 02 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读取RSS feed的代码
2008/08/01 PHP
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
php 广告调用类代码(支持Flash调用)
2011/08/11 PHP
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
laravel请求参数校验方法
2019/10/10 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
jquery 图片轮换效果
2010/07/29 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
Python Property属性的2种用法
2015/06/21 Python
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
工程业务员岗位职责
2013/12/31 职场文书
个人自我评价和职业目标
2014/01/24 职场文书
洗手间标语
2014/06/23 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
党支部半年考察意见
2015/06/01 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL
CSS3实现指纹特效代码
2022/03/17 HTML / CSS