我有一个由matplotlib生成的3d线条图。我想在一个特定的xy(或yz,xz)切片上覆盖一个图像。如何使用python实现这一点?谢谢。
我有一个简单的3D绘图代码:
fig = plt.figure(1),<br>
ax = Axes3D(fig)<br>
ax.plot(f[:,0], f[:,1], f[:,2], color='r')
我也有一个图像“Im”(一个2d数组),所以我需要这样的东西:
ax.overlay(Im, slice='xy', sliceNo=10)
我有一个由matplotlib生成的3d线条图。我想在一个特定的xy(或yz,xz)切片上覆盖一个图像。如何使用python实现这一点?谢谢。
我有一个简单的3D绘图代码:
fig = plt.figure(1),<br>
ax = Axes3D(fig)<br>
ax.plot(f[:,0], f[:,1], f[:,2], color='r')
我也有一个图像“Im”(一个2d数组),所以我需要这样的东西:
ax.overlay(Im, slice='xy', sliceNo=10)
3条答案
按热度按时间rvpgvaaj1#
我曾经在背景图像上做过一个3D表面图叠加:
如果这与你想要的相似,我可以试着用它做一个工作示例。
或者,如果只想在三维空间中显示图像,可以使用曲面图:
当然,步幅值可以减小到1以获得更好的图像质量,但这样绘制将花费loooong =)
以上代码生成的图像:
编辑2020年11月:
由于它似乎很有趣,这里是我用来生成第一个图像的代码(这是光激发后多晶硅晶片中的少数电荷载流子衰减):
rjee0c152#
我使用OpenCV的解决方案更接近原始解决方案。
我还没有弄清楚为什么
fig.show()
会抛出AttributeError,但它可以工作chy5wohz3#