【matplotlib】可视化解决方案——如何在绘图区域嵌套子绘图区域

概述

说到添加子图,大家都会想到使用 Figure.add_axes() 方法,该方法能够在一个 Figure 对象的任意位置添加一个 Axes 对象,这些 Axes 对象是平级的,只是位置不同,那么如果想在一个子图上再嵌套一个子图呢?这个需求使用 Figure.add_axes() 方法就无法实现。

使用嵌套子图和在图中添加数据表的目的一致,都是为了帮助大家更好的理解数据,从多个角度显示同一个数据,这样才能更加全面地了解数据的本质。在 matplotlib 中,添加嵌套子图的方法是使用 Axes.inset_axes() 方法,该方法的定义如下:

Axes.inset_axes(bounds, *, transform=None, zorder=5, **kwargs)

参数说明:

  • bounds:指定插入的 Axes 对象的左下角坐标和长宽;
  • projection:指定插入的 Axes 对象的投影方式;
  • polar:指定是否使用极坐标系,该参数等同于 projection='polar'
  • zorder:指定插入的 Axes 对象的 Z 轴高度;
  • kwargs:传递 Axes 关键字参数;
  • 返回值:插入的 Axes 对象。

示例

接下来将以一个示例帮助大家更好的理解嵌入子图,使用的数据是通过正态分布函数得出(均值 75,标准差 15) ,示例完整代码如下:

import matplotlib.pyplot as plt  
import numpy as np  
  
plt.rcParams["font.sans-serif"] = ["SimHei"]  
plt.rcParams["axes.unicode_minus"] = False  
plt.style.use("classic")  
  
x = np.linspace(1, 100, 200)  
y = np.random.normal(75.0, 15.0, 200)  
  
fig, ax = plt.subplots(1, 1)  
fig.set_facecolor("#FFF")  
  
ax.plot(x, y, ls='-', lw=3, color='#2878b5')  
child_ax = ax.inset_axes((0.4, 0.75, 0.35, 0.2))  
child_ax.hist(y, bins=5, facecolor='#c82423', edgecolor='k')  
  
plt.show()

画图结果如下:

在这里插入图片描述

往期回顾

  1. 【matplotlib】可视化解决方案——如何正确设置图例
  2. 【matplotlib】可视化解决方案——如何正确设置轴长度和范围
  3. 【matplotlib】可视化解决方案——如何正确理解pyplot和OO-API
  4. 【matplotlib】可视化解决方案——如何正确展示和保存图像
  5. 【matplotlib】可视化解决方案——如何设置字符串的输出字体效果
  6. 【matplotlib】可视化解决方案——如何正确使用颜色映射表
  7. 【matplotlib】可视化解决方案——如何调整轴脊位置
  8. 【matplotlib】可视化解决方案——如何设置坐标系计量方法
  9. 【matplotlib】可视化解决方案——如何正确使用文本注释
  10. 【matplotlib】可视化解决方案——如何调整计量单位和计量方法

文中难免会出现一些描述不当之处(尽管我已反复检查多次),欢迎在留言区指正,相关的知识点也可进行分享,希望大家都能有所收获!!如果觉得我的文章写得还行,不妨支持一下。你的每一个转发、关注、点赞、评论都是对我最大的支持!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猪猪家的大猪猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值