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实现远程调用MetaSploit的方法
Aug 22 Python
详解python字节码
Feb 07 Python
python执行CMD指令,并获取返回的方法
Dec 19 Python
详解python:time模块用法
Mar 25 Python
Django中的cookie和session
Aug 27 Python
从numpy数组中取出满足条件的元素示例
Nov 26 Python
python实现录屏功能(亲测好用)
Mar 02 Python
Python实现UDP程序通信过程图解
May 15 Python
如何解决cmd运行python提示不是内部命令
Jul 01 Python
python3爬虫中异步协程的用法
Jul 10 Python
弄清Pytorch显存的分配机制
Dec 10 Python
python语言中pandas字符串分割str.split()函数
Aug 05 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
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
PHP APC的安装与使用详解
2013/06/13 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
自己的js工具_Form 封装
2009/08/21 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
简介JavaScript中Math.cos()余弦方法的使用
2015/06/15 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
浅谈js原生拖放
2016/11/21 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
2018/12/23 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
在python中pandas的series合并方法
2018/11/12 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
农行实习自我鉴定
2013/09/22 职场文书
幼儿园毕业家长感言
2014/02/10 职场文书
财务总经理岗位职责
2014/02/16 职场文书
商超业务员岗位职责
2014/03/12 职场文书
我为自己代言广告词
2014/03/18 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
高一化学教学反思
2016/02/22 职场文书
JavaScript架构localStorage特殊场景下二次封装操作
2022/06/21 Javascript