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 相关文章推荐
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
Apr 11 Python
Python中的Matplotlib模块入门教程
Apr 15 Python
python实现SMTP邮件发送功能
Jun 16 Python
python实时监控cpu小工具
Jun 21 Python
python3学生名片管理v2.0版
Nov 29 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
Python设计模式之享元模式原理与用法实例分析
Jan 11 Python
Python 3.8 新功能全解
Jul 25 Python
对django layer弹窗组件的使用详解
Aug 31 Python
对Python中 \r, \n, \r\n的彻底理解
Mar 06 Python
jupyter notebook清除输出方式
Apr 10 Python
Python基于jieba, wordcloud库生成中文词云
May 13 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
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
DSP接收机前端设想
2021/03/02 无线电
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
两种php实现图片上传的方法
2016/01/22 PHP
javascript this用法小结
2008/12/19 Javascript
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
javascript 精粹笔记
2010/05/09 Javascript
高性能web开发 如何加载JS,JS应该放在什么位置?
2010/05/14 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
Python打印不合法的文件名
2020/07/31 Python
HTML5中5个简单实用的API
2014/04/28 HTML / CSS
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
《翻越远方的大山》教学反思
2014/04/13 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
2014卖家双十一活动策划书
2014/09/29 职场文书
教师三严三实心得体会
2014/10/11 职场文书
慰问信格式规范
2015/03/23 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
python基础入门之字典和集合
2021/06/13 Python
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python
Java线程的6种状态与生命周期
2022/05/11 Java/Android
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL