首页 > 后端开发 > Python教程 > 如何在 Matplotlib 中创建不连续的 X 轴?

如何在 Matplotlib 中创建不连续的 X 轴?

DDD
发布: 2024-11-27 04:55:10
原创
496 人浏览过

How to Create a Discontinuous X-axis in Matplotlib?

在 Matplotlib 中创建不连续轴

在 Matplotlib 中,可以修改 x 轴的外观以指示两个值范围之间的不连续性。

自定义轴

虽然没有直接的方法来创建对于不连续轴,您可以通过自定义轴标签和外观来实现类似的效果。一种方法是使用自定义变换来创建不连续轴。

子图

如果您不想创建自定义变换,可以使用子图来实现所需的效果。通过创建两个具有不同 x 轴限制的子图并隐藏它们之间的脊柱,您可以模拟不连续的轴。

示例

import matplotlib.pyplot as plt
import numpy as np

x = np.r_[0:1:0.1, 9:10:0.1]
y = np.sin(x)

fig, (ax, ax2) = plt.subplots(1, 2, sharey=True)

ax.plot(x, y, 'bo')
ax2.plot(x, y, 'bo')

ax.set_xlim(0, 1) 
ax2.set_xlim(9, 10) 

ax.spines['right'].set_visible(False)
ax2.spines['left'].set_visible(False)
ax.yaxis.tick_left()
ax2.yaxis.tick_right()

plt.subplots_adjust(wspace=0.15)

plt.show()
登录后复制

此代码创建一个包含两个子图的图,每个子图显示不同范围的 x 值。子图之间的重叠被隐藏,以创建不连续轴的外观。

断裂效果

要添加断裂轴线 (//) 效果,可以使用以下代码:

ax.plot((1-d,1+d),(-d,+d), **kwargs) # top-left diagonal
ax.plot((1-d,1+d),(1-d,1+d), **kwargs) # bottom-left diagonal

kwargs.update(transform=ax2.transAxes) # switch to the bottom axes
ax2.plot((-d,d),(-d,+d), **kwargs) # top-right diagonal
ax2.plot((-d,d),(1-d,1+d), **kwargs) # bottom-right diagonal
登录后复制

其中 d 表示轴坐标中对角线的大小。此代码在每个轴的角上添加对角线,给人一种断轴的印象。

以上是如何在 Matplotlib 中创建不连续的 X 轴?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板