我有一个由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')
Run Code Online (Sandbox Code Playgroud)
我还有一个图像"Im"(一个2d数组),所以我需要这样的东西:
ax.overlay(Im, slice='xy', sliceNo=10)
Run Code Online (Sandbox Code Playgroud) 此处已触及该主题,但未提供有关如何创建3D图并将图像以(x,y)指定z高度插入平面的指示。
因此,为了提出一个简单且可复制的案例,假设我使用以下代码创建了一个3D图mplot3d:
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.winter,
linewidth=0, antialiased=True)
ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
plt.show()
Run Code Online (Sandbox Code Playgroud)
在级别上z=min(z)-1,这里-1是避免重叠的视觉偏移, …