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读写Excel文件的实例
Nov 01 Python
基于python yield机制的异步操作同步化编程模型
Mar 18 Python
浅析python协程相关概念
Jan 20 Python
DataFrame 将某列数据转为数组的方法
Apr 13 Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 Python
python selenium firefox使用详解
Feb 26 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
Dec 12 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
Jun 01 Python
这样写python注释让代码更加的优雅
Jun 02 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
Ajax PHP简单入门教程代码
2008/04/25 PHP
php操作MongoDB类实例
2015/06/17 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
基于jquery自定义图片热区效果
2012/07/21 Javascript
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
基于jquery ajax的多文件上传进度条过程解析
2019/09/11 jQuery
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
python使用代理ip访问网站的实例
2018/05/07 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
python 实现多维数组转向量
2019/11/30 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
Python urllib2运行过程原理解析
2020/06/04 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
工程监理应届生求职信
2013/11/09 职场文书
应届生自我鉴定
2013/12/11 职场文书
优秀经理事迹材料
2014/02/01 职场文书
劲霸男装广告词
2014/03/21 职场文书
面试通知短信
2015/04/20 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android