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写的服务监控程序实例
Jan 31 Python
Python中线程编程之threading模块的使用详解
Jun 23 Python
python flask实现分页效果
Jun 27 Python
Python制作词云的方法
Jan 03 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
使用python动态生成波形曲线的实现
Dec 04 Python
flask框架url与重定向操作实例详解
Jan 25 Python
给 TensorFlow 变量进行赋值的方式
Feb 10 Python
Python如何读写二进制数组数据
Aug 01 Python
Python grequests模块使用场景及代码实例
Aug 10 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 07 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  Yii清理缓存的实现方法
2016/11/10 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
Python的函数的一些高阶特性
2015/04/27 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
python中subprocess批量执行linux命令
2018/04/27 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
Flask教程之重定向与错误处理实例分析
2019/08/01 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
python性能测试工具locust的使用
2020/12/28 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
会计系个人求职信范文分享
2013/12/20 职场文书
监察建议书范文
2014/03/12 职场文书
感恩教育活动总结
2014/05/05 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
销售辞职信范文
2015/03/02 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
Flask response响应的具体使用
2021/07/15 Python