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使用webbrowser浏览指定url的方法
Apr 04 Python
python使用arcpy.mapping模块批量出图
Mar 06 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
python中requests和https使用简单示例
Jan 18 Python
Python里字典的基本用法(包括嵌套字典)
Feb 27 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
python使用建议与技巧分享(二)
Aug 17 Python
python的setattr函数实例用法
Dec 16 Python
Python中json.load()和json.loads()有哪些区别
Jun 07 Python
详解Flask开发技巧之异常处理
Jun 15 Python
Python之matplotlib绘制饼图
Apr 13 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的ASCII码转换类
2013/07/05 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
Python生成不重复随机值的方法
2015/05/11 Python
Python中字典映射类型的学习教程
2015/08/20 Python
python如何获取服务器硬件信息
2017/05/11 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
python爬取招聘要求等信息实例
2020/11/20 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
Linux文件操作命令都有哪些
2015/02/27 面试题
通知函格式范文
2015/04/27 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
正确使用MySQL update语句
2021/05/26 MySQL
golang生成vcf通讯录格式文件详情
2022/03/25 Golang
python中validators库的使用方法详解
2022/09/23 Python