matplotlib绘图:子图共享坐标轴-子图位置调整

matplotlib绘图:子图共享坐标轴-子图位置调整

Created: Nov 17, 2019 11:27 PM

  • subplots()方法是提供子绘图的函数,所以在创建子图的同时可以通过shareX, shareY参数来选择书否共享x,y轴
  • plt.subplots_adjuest()方法提供了调整子图的功能接口,可实现子图间距的调整
  1. 导入必要的包
  2. 准备数据
  3. 开始绘图
    import numpy as np
    import matplotlib.pyplot as plt
    # 生成固定随机数组
    np.random.seed(0)
    # 生成随机漫步数据
    data = np.random.randn(100).cumsum()
    fig, axes = plt.subplots(2, 2, sharex=True, sharey=True, figsize=(14, 8))
    # 通过axes的索引定位绘制图片
    axes[0, 0].plot(data)
    axes[0, 1].bar(range(len(data)), data, color='k', alpha=0.5)
    axes[1, 0].scatter(range(len(data)), data)
    axes[1, 1].plot(data, 'c>--')
    # 调节子图直接的距离
    plt.subplots_adjust(wspace=0, hspace=0)
    plt.show()

在这里插入图片描述

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,您的第一个问题是如何创建一个 2x1 的子图并绘制 NumPy 库中的 1000 个正态随机数(randn)的累计和,线条颜色均为黑色,线形分别为实线和点线,并共用坐标轴。 下面是 Python 代码来实现这个问题: ```python import numpy as np import matplotlib.pyplot as plt # 生成 1000 个正态随机数 data = np.random.randn(1000) # 创建一个 2x1 的子图 f, axarr = plt.subplots(2, 1) # 在第一个子图上绘制实线图和累积和 axarr[0].plot(data.cumsum(), color='black', linestyle='-') # 在第二个子图上绘制点线图和累积和 axarr[1].plot(data.cumsum(), color='black', linestyle=':') # 共享 x 轴 plt.subplots_adjust(hspace=0.4) # 调整子图之间的垂直间距 plt.setp([a.get_xticklabels() for a in f.axes[:-1]], visible=False) # 隐藏上面的子图的 x 轴标签 plt.show() # 显示绘图结果 ``` 代码解释: 首先,我们使用 NumPy 库中的 ``np.random.randn(1000)`` 函数生成了 1000 个正态随机数,存储在数据变量 ``data`` 中。接着,我们使用 ``matplotlib.pyplot.subplots`` 函数创建了一个 2x1 的子图,并将返回的子图对象存储在 ``f`` 和 ``axarr`` 变量中。然后,我们在第一个子图上绘制实线图和累计和,使用黑色颜色和实线样式,使用 ``data.cumsum()`` 函数计算数值的累计和。接着,在第二个子图上绘制点线图和累计和,使用黑色颜色和点线样式,也使用 ``data.cumsum()`` 函数计算数值的累计和。最后,我们共享 x 轴,使用 ``plt.subplots_adjust`` 函数调整子图之间的垂直间距,并使用 ``plt.setp`` 函数隐藏上面的子图的 x 轴标签。最后,使用 ``plt.show()`` 函数显示绘图结果。 希望这个回答对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值