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 ...
随机推荐
- Vulnhub之Credit_Card_Scammers靶场渗透
前言 一次"夺旗"练习,涵盖了许多不同的技巧. 背后的故事:骗子正在利用人们,各种假冒购物网站已经建立起来,但人们发现他们的订单从未到达.我们发现了一个诈骗网站,我们认为该网站正在 ...
- Windows 11 内核新调试器「GitHub 热点速览 v.23.01」
本周热点趋势榜虽然新项目不多,但是还是有几个不错值得收藏的工具项目,比如用来做文本转语音的 tortoise-tts 能生成更加贴近真实人声的语音,让 Golang 并发更出色的 conc,以及通过 ...
- uniapp 开发微信小程序问题笔记
最近接手了一个小程序开发,从头开始.使用了 uniapp 搭建,以前没有做过小程序开发,着手看文档.查文档.一步一步完成了任务的开发.特此记录开发过程中的问题. 开发建议: 使用 HBuilderX ...
- 全志R528 系统繁忙时触摸屏I2C报错问题。
最近调试项目时遇到一个奇怪的问题. 当linux 系统繁忙时(开机,关机或APP繁忙等情况),此时按下触摸屏后, I2C总线就会报错,TP读数据失败,之后内存报错,重启. root@TinaLinux ...
- windows11 彻底修改c盘中文用户名
windows11 彻底修改c盘用户名 由于一开始注册的时候没有注意使用了中文名导致后来再使用一些应用的时候出现问题浪费了大量的时间找不出原因(例如:安装cuda 的时候在使用nvcc编译.cu文件的 ...
- three.js一步一步来--如何画出构造辅助线
可以参考下面代码,粘贴上去就有了~ <template> <div class="container"> <h1>初步构造出辅助线</h1 ...
- java入门与进阶P-4.7
最大公约数 首先做这个题需要先复习几组概念: 如果数a能被数b整除,a就叫做b的倍数,b就叫做a的约数.几个整数中公有的约数,叫做这几个数的公约数:其中最大的一个,叫做这几个数的最大公约数.举例: 1 ...
- WordPress4.6任意命令执行漏洞
前言 WordPress 是一种使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站.也算是一个内容管理系统(CMS) 环境搭建 docker环 ...
- 了解 Transformers 是如何“思考”的
Transformer 模型是 AI 系统的基础.已经有了数不清的关于 "Transformer 如何工作" 的核心结构图表. 但是这些图表没有提供任何直观的计算该模型的框架表示. ...
- Vue 01 简介
1 官网 1)英文官网: https://vuejs.org/ 2)中文官网: https://cn.vuejs.org/ 2 介绍与描述 1) 动态构建用户界面的渐进式 JavaScript ...