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中在脚本中引用其他文件函数的实现方法
Jun 23 Python
浅谈Python中用datetime包进行对时间的一些操作
Jun 23 Python
人工智能最火编程语言 Python大战Java!
Nov 13 Python
python中abs&map&reduce简介
Feb 20 Python
深入分析python中整型不会溢出问题
Jun 18 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
django进阶之cookie和session的使用示例
Aug 17 Python
Python如何调用JS文件中的函数
Aug 16 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
Feb 10 Python
django实现模型字段动态choice的操作
Apr 01 Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 Python
详解python模块pychartdir安装及导入问题
Oct 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
php实现的MySQL通用查询程序
2007/03/11 PHP
javascript,php获取函数参数对象的代码
2011/02/03 PHP
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
javascript 跳转代码集合
2009/12/03 Javascript
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Python抓取手机号归属地信息示例代码
2016/11/28 Python
python win32 简单操作方法
2017/05/25 Python
详解python中docx库的安装过程
2019/11/08 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
Python tcp传输代码实例解析
2020/03/18 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
乡镇交通安全实施方案
2014/03/29 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
花木兰观后感
2015/06/10 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android
MySQL 字符集 character
2022/05/04 MySQL
vue实现在data里引入相对路径
2022/06/05 Vue.js