在matplotlib中使用3个不同的x轴和相同的y轴进行打印?

在matplotlib中使用3个不同的x轴和相同的y轴进行打印?,matplotlib,axes,multiple-axes,Matplotlib,Axes,Multiple Axes,我试着画一个图形,它有3个不同的x轴,但y轴是相同的,它是相同的,连续的曲线。x轴的第一部分上升到一个点(在图中为零)。轴的第二部分在不同的比例上(图中显示在顶部)。第三节从第一节结束的地方开始(在本例中为零)。我想画出不间断的曲线。可以在matplotlib中执行图片中的类似操作吗?先谢谢你 有点不清楚中心部分应该是什么样子,以及该轴应该具有哪些缩放比例。但总体结构可以如下创建: 导入matplotlib.pyplot作为plt 将numpy作为np导入 图(ax1、ax2、ax3)=plt.

我试着画一个图形,它有3个不同的x轴,但y轴是相同的,它是相同的,连续的曲线。x轴的第一部分上升到一个点(在图中为零)。轴的第二部分在不同的比例上(图中显示在顶部)。第三节从第一节结束的地方开始(在本例中为零)。我想画出不间断的曲线。可以在matplotlib中执行图片中的类似操作吗?先谢谢你


有点不清楚中心部分应该是什么样子,以及该轴应该具有哪些缩放比例。但总体结构可以如下创建:

导入matplotlib.pyplot作为plt
将numpy作为np导入
图(ax1、ax2、ax3)=plt.子批次(ncols=3,sharey=True,
gridspec_kw={'wspace':0,'width_ratio':[3,2,3]})
对于“顶部”、“右侧”中的侧边:
ax1.脊椎[侧面].设置为可见(假)
ax2.脊椎['bottom'].set_可见(假)
对于“左侧”、“右侧”、“顶部”中的侧边:
ax3.脊椎[侧面].设置为可见(假)
ax2.xaxis.tick_top()
对于“左”、“右”侧:
ax2.spines[side]。设置_线型((0,(4,4)))
ax2.设置_zorder(2)#以显示虚线轴
ax2.勾选参数(轴=y',左=假,右=假)
ax3.勾选参数(轴=y',左=假,右=假)
ax1.set_xlim(-2.5,0)
ax2.set_xlim(-1,1)
ax3.set_xlim(0,2.5)
x=np.linspace(-2.5500)
y=np.sin(np.pi*x*np.abs(x))
ax1.绘图(x,y)
ax2.绘图(x,y)
ax3.绘图(x,y)
plt.紧_布局()
plt.show()

您可能需要查看设置“符号”比例。亲爱的约翰,谢谢你的建议!然而,我真正需要的是能够呈现一个不同的、单独的比例,没有日志或符号的比例可以做到这一点。我看到的唯一问题是底部刻度从零开始停止。如果x轴像这样被打断,曲线怎么可能是连续的?或者您想通过使用顶轴创建某种缩放,例如,在-0.001和+0.001之间的x值上进行缩放?亲爱的Patrick,该曲线对应于沿二维几何体内路径的温度分布。该路径从固定的y位置开始,但随后会发生变化(x中的坐标是固定的,y中的坐标是变化的),到达另一个点后,y再次固定,并沿着x中的变化线(在二维几何图形中,路径形成了一个“弯头”)。如果我不包括路径的y变化部分,那么我会在图中得到一个不连续,这是我不想要的。但也许有更好的方法可以做到这一点。亲爱的约翰,这正是我一直在寻找的。非常感谢你!