栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在matplotlib的x轴上//中断

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在matplotlib的x轴上//中断

您可以直接将matplotlib示例改编为x轴上的中断点:

"""Broken axis example, where the x-axis will have a portion cut out."""import matplotlib.pylab as pltimport numpy as npx = np.linspace(0,10,100)x[75:] = np.linspace(40,42.5,25)y = np.sin(x)f,(ax,ax2) = plt.subplots(1,2,sharey=True, facecolor='w')# plot the same data on both axesax.plot(x, y)ax2.plot(x, y)ax.set_xlim(0,7.5)ax2.set_xlim(40,42.5)# hide the spines between ax and ax2ax.spines['right'].set_visible(False)ax2.spines['left'].set_visible(False)ax.yaxis.tick_left()ax.tick_params(labelright='off')ax2.yaxis.tick_right()# This looks pretty good, and was fairly painless, but you can get that# cut-out diagonal lines look with just a bit more work. The important# thing to know here is that in axes coordinates, which are always# between 0-1, spine endpoints are at these locations (0,0), (0,1),# (1,0), and (1,1).  Thus, we just need to put the diagonals in the# appropriate corners of each of our axes, and so long as we use the# right transform and disable clipping.d = .015 # how big to make the diagonal lines in axes coordinates# arguments to pass plot, just so we don't keep repeating themkwargs = dict(transform=ax.transAxes, color='k', clip_on=False)ax.plot((1-d,1+d), (-d,+d), **kwargs)ax.plot((1-d,1+d),(1-d,1+d), **kwargs)kwargs.update(transform=ax2.transAxes)  # switch to the bottom axesax2.plot((-d,+d), (1-d,1+d), **kwargs)ax2.plot((-d,+d), (-d,+d), **kwargs)# What's cool about this is that now if we vary the distance between# ax and ax2 via f.subplots_adjust(hspace=...) or plt.subplot_tool(),# the diagonal lines will move accordingly, and stay right at the tips# of the spines they are 'breaking'plt.show()

出于您的目的,只需两次绘制数据(在每个轴上绘制一次,

ax
然后适当地
ax2
设置
xlim
s即可。“中断线”应移动以匹配新的中断,因为它们是在相对轴坐标而非数据坐标中绘制的。

折线只是在一对点之间绘制的未剪裁的绘图线。例如,在第一个轴上的

ax.plot((1-d,1+d), (-d,+d),**kwargs)
(1-d,-d)
与点之间绘制折线
(1+d,+d)
:这是右下角的折线。如果您想更改原图,请适当更改这些值。例如,要使这个陡峭,请尝试
ax.plot((1-d/2,1+d/2),(-d,+d), **kwargs)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596461.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号