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 相关文章推荐
详解Python2.x中对Unicode编码的使用
Apr 03 Python
Djang中静态文件配置方法
Jul 30 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 Python
简单易懂的python环境安装教程
Jul 13 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
Apr 22 Python
Python文件读写保存操作的示例代码
Sep 14 Python
python+webdriver自动化环境搭建步骤详解
Jun 03 Python
pyQT5 实现窗体之间传值的示例
Jun 20 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
python 实现绘制整齐的表格
Nov 18 Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 Python
使用Django搭建网站实现商品分页功能
May 22 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
mysql总结之explain
2012/02/27 PHP
php实现读取超大文件的方法
2014/07/28 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
2019/10/22 Python
Python selenium的基本使用方法分析
2019/12/21 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
音乐表演专业毕业生求职信
2013/10/14 职场文书
总经理工作职责范文
2014/03/14 职场文书
学校党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2016年学校安全教育月活动总结
2016/04/06 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
Python Pygame实战之塔防游戏的实现
2022/03/17 Python
python垃圾回收机制原理分析
2022/04/13 Python