Matplotlib 实现画中画
需要导入的包 inset_axes
要实现画中画,即在原画轴上添加新轴,需要用到mpl_toolkits.axes_grid1.inset_locator的inset_axes.
基本用法
new_axis=inset_axes(parent_axes, width, height, loc='upper right',borderpad=0.5)
参数说明
parent_axes:父轴,即背景轴;
width:新轴宽度
height:新轴高度
loc:新轴在父轴上位置,包括:
| str | code | 
|---|---|
| 'upper right' | 1 | 
| 'upper left' | 2 | 
| 'lower left' | 3 | 
| 'lower right' | 4 | 
| 'right' | 5 | 
| 'center left' | 6 | 
| 'center right' | 7 | 
| 'lower center' | 8 | 
| 'upper center' | 9 | 
| 'center' : | 10 | 
======================================
可以写做loc='upper right'或者loc=1。
borderpad:新轴与父轴间距。
完整代码
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
plt.rcParams['font.family'] = 'Noto Sans CJK JP'
plt.rcParams['axes.unicode_minus'] = False
def fun_power(x):
	c = np.exp(-(x ** 2))
	return c
def picture_in_picture():
	x0 = np.linspace(0, 20, 200)
	x2 = np.linspace(0, 2 * np.pi, 200)
	y1 = np.cos(x0)
	y4 = fun_power(x2)
	fig, axes = plt.subplots(figsize=(40, 20))
	ax1 = plt.subplot()
	num = np.arange(0, 0.5, 0.1) * np.pi
	for i in num:
		y = y1 * fun_power(i)
		symbol = (i / np.pi)
		ax1.plot(x0, y, label='y={}'.format(symbol.round(1)) + r'$\times\pi$')
	plt.legend()
	plt.title('多元函数'+r'$:z=\sin{x}\times e^{-y^2}$')
	plt.ylim(-2,1.5)
	plt.grid()
	new_ax = inset_axes(ax1, width="40%", height="20%", loc='lower right', borderpad=5)
	new_ax.plot(x2, y4)
	num = ['{}'.format(i / 2) for i in range(0,5,1)]
	x_labels = [i + r'$\pi$' for i in num]
	plt.xticks(np.arange(0, 2 * np.pi + 0.01, np.pi / 2), labels=x_labels)
	plt.yticks(np.arange(0, 1.1, 0.2))
	plt.title('放大因子'+r'$:e^{-y^2}$')
	plt.grid()
	plt.savefig('potential.pdf')
	plt.show()
if __name__ == '__main__':
	picture_in_picture()
实际效果
Matplotlib 实现画中画的更多相关文章
- Matplotlib 学习笔记
		
注:该文是上了开智学堂数据科学基础班的课后做的笔记,主讲人是肖凯老师. 数据绘图 数据可视化的原则 为什么要做数据可视化? 为什么要做数据可视化?因为可视化后获取信息的效率高.为什么可视化后获取信息的 ...
 - python安装numpy、scipy和matplotlib等whl包的方法
		
最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...
 - matplotlib 高级用法实例--共享x轴
		
http://localhost:8888/notebooks/duanqs/matplotlib_advanced_example.ipynb 我不会弄呀, 刚才从matplotlib文档里吧示例用 ...
 - Python matplotlib笔记
		
可视化的工具有很多,如Tableau,各种JS框架,我个人感觉应该是学JS最好,因为JS不需要环境,每个电脑都有浏览器,而像matplotlib需要Python这样的开发环境,还是比较麻烦的,但是毕竟 ...
 - Matplotlib——第一章轻松画个图
		
首先安装matplotlib,使用pip install matplotlib.安装完成后在python的命令行敲入import matplotlib,如果没问题,说明安装成功可以开始画图了. 看好了 ...
 - win7系统下python安装numpy,matplotlib,scipy和scikit-learn
		
1.安装numpy,matplotlib,scipy和scikit-learn win7系统下直接采用pip或者下载源文件进行安装numpy,matplotlib,scipy时会遇到各种问题,这是因为 ...
 - 【转】使用Python matplotlib绘制股票走势图
		
转载出处 一.前言 matplotlib[1]是著名的python绘图库,它提供了一整套绘图API,十分适合交互式绘图.本人在工作过程中涉及到股票数据的处理如绘制K线等,因此将matplotlib的使 ...
 - 【Python数据分析】四级成绩分布 -matplotlib,xlrd 应用
		
最近获得了一些四级成绩数据,大概500多个,于是突发奇想是否能够看看这些成绩数据是否满足所谓的正态分布呢?说干就干,于是有了这篇文章.文章顺带介绍了xlrd模块的一些用法和matplotlib画自定义 ...
 - 【Matplotlib】详解图像各个部分
		
首先一幅Matplotlib的图像组成部分介绍. 在matplotlib中,整个图像为一个Figure对象.在Figure对象中可以包含一个或者多个Axes对象.每个Axes(ax)对象都是一个拥有自 ...
 - python 下 tinker、matplotlib 混合编程示例一个
		
该例是实现了 Tinker 嵌入 matplotlib 所绘制的蜡烛图(k 线),数据是从 csv 读入的.花一下午做的,还很粗糙,仅供参考.python 代码如下: import matplotli ...
 
随机推荐
- Win10的OneDrive目录在旧系统里无法访问、删不掉
			
近日又一次忍不了Win10的傻逼了,把主要设备降级回 Win8.1 了,配合 StartIsBack 以及 AeroGlass 使用.之所以没降级回 Win7,是因为当年买的大 Surface,只能 ...
 - 《Effective C++》关于const,define等总结
			
(将每一条item的总结和自己的理解给记录下来,以后有需要的话可以再回头参阅这些资料,不懂的再翻书温故.) Item 02:尽量以const ,enum,inline替换#define #define ...
 - 线段树套线性基——题解P4839 P哥的桶
			
文章历史 2022-08-03: 文章初稿,由于对算法介绍过于少而被管理员打回重造. 2020-08-06:将算法介绍进行扩写,并删除了一些可有可无的内容或玩梗内容. 管理员审核题解辛苦了. 简要题意 ...
 - 使用“宝塔一键迁移”工具,将typecho博客迁移到京东云cvm云主机
			
作者:京东科技 林中 服务器更换.网站搬家,对于很多开发者新手来说不是一件容易的事情,需要迁移网站程序.数据库,修改数据库连接文件等.在云迁移方案中,宝塔是非常简单好用的服务器运维面板,能够极大提升运 ...
 - SOFAJRaft源码阅读-Netty时间轮算法的实践
			
SOFAJRaft的定时任务调度器是基于Netty来实现的,所以本文将会基于Netty时间轮算法,然后再结合SOFAJRaft源码进行分析. @Author:Akai-yuan @更新时间:2023/ ...
 - Java 进阶P-7.4+P-7.5
			
JTable 用JTbale类可以以表格的形式显示和编辑数据. JTable类的对象并不存储数据,他只是数据的表现. 表格是 Swing 新增加的组件,主要功能是把数据以二维表格的形式显示出来,并且允 ...
 - Unity模块嵌入到Android中
			
嗨,大家好,小黑在沉寂了6个月之后,终于要继续写一篇博客了. 先吐槽一波上家公司PHD&&OMS,不吐不快.上家公司的小黑,每天不是在弄UIWidgets,就是再弄UIWidgets, ...
 - 中断ISR技术架构
			
架构一 ISR采用立即响应思路,技术架构如下图: 优点:简单. 缺点:处理性能不高,中断优先级规划性不高(仅仅区分CPU的32个优先级别,针对不同类型中断优先级不支持). 选型:对于硬件支持多级中断的 ...
 - ClickHouse(12)ClickHouse合并树MergeTree家族表引擎之AggregatingMergeTree详细解析
			
目录 建表语法 查询和插入数据 数据处理逻辑 ClickHouse相关资料分享 AggregatingMergeTree引擎继承自 MergeTree,并改变了数据片段的合并逻辑.ClickHouse ...
 - 【Django drf】视图层大总结 ViewSetMixin源码分析 路由系统 action装饰器
			
目录 九个视图子类 视图集 继承ModelViewSet类写五个接口 继承 ReadOnlyModelView编写2个只读接口 ViewSetMixin源码分析 查找as_view方法 setattr ...