Python 将等高线从一个图形投影到另一个图形

Python 将等高线从一个图形投影到另一个图形,python,matplotlib,contour,Python,Matplotlib,Contour,我想将等高线从一个图形投影到另一个图形(使用相同的x,y参考系)。我希望它投影到第二幅图中的曲面图上,而不是投影到固定平面上 更新:有一个解决办法;通过使用contour.allsegs命令,您可以获得包含等高线x、y坐标的数组列表,然后可以使用该列表预处理第二个地物的数据 但是:这只起作用,因为我知道第二个曲面的数学表示。这意味着我可以简单地根据公式使用第一个地物轮廓线的x、y值计算z值 将numpy导入为np 将matplotlib.pyplot作为plt导入 十、 Y=np.meshgri

我想将等高线从一个图形投影到另一个图形(使用相同的x,y参考系)。我希望它投影到第二幅图中的曲面图上,而不是投影到固定平面上

更新:有一个解决办法;通过使用
contour.allsegs
命令,您可以获得包含等高线x、y坐标的数组列表,然后可以使用该列表预处理第二个地物的数据

但是:这只起作用,因为我知道第二个曲面的数学表示。这意味着我可以简单地根据公式使用第一个地物轮廓线的x、y值计算z值

将numpy导入为np
将matplotlib.pyplot作为plt导入
十、 Y=np.meshgrid(np.arange(0,5,1/5),np.arange(0,5,1/5))
Z1=np.sin(X)+np.cos(Y)
Z2=X+Y
图=plt.图(figsize=plt.FigSpect(0.5))
ax1=图add_子图(1,2,1,投影='3d',标题='fig1')
surf1=ax1。绘制曲面(X,Y,Z1,alpha=0.2)
轮廓1=ax1。轮廓(X,Y,Z1)
segs=轮廓1.allsegs
ax2=图add_子图(1、2、2、投影='3d',标题='fig2')
surf2=ax2。绘制曲面(X,Y,Z2,alpha=0.2)
对于范围内的i(len(segs)):
如果分段[i]:
plt.绘图(segs[i][0][:,0],segs[i][0][:,1],[x+y代表x,y在zip中(segs[i][0][:,0],segs[i][0][:,1]))
如果len(segs[i])>=2:
plt.plt(segs[i][1][1][:,0],segs[i][1][:,1],[x+y代表x,y在zip中(segs[i][1][:,0],segs[i][1][:,1]))
plt.show()
导致:

  • 是否有另一种(简单)方法可以从投影到
    fig2
    表面的
    fig1
    中获取轮廓线(可能是我缺少的
    mpl
    内置函数)

  • 我如何进一步开发上述方法,以便能够将其用于我不知道其数学表示形式的曲面,而是使用文件中的XYZ数据集

任何提示或解决方案的替代方法都是非常受欢迎的