【发布时间】:2013-09-28 03:55:43
【问题描述】:
我正在尝试使用 matplotlib 生成 3D 图形,其中 xy 平面是图像,然后在顶部绘制一些 3D 轨迹(该部分工作正常)。问题是,即使我导入的 PNG 使用 imshow 显示得很好,即使我可以在 3D 轴上绘制图像,如果我只使用食谱中的一个示例,我的图像只是显示为一个无特征的黑盒子。我确定我错过了一些小东西 - 提前谢谢!
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D, art3d
from pylab import ogrid
import matplotlib.pyplot as plt
plt.ioff()
fig = plt.figure()
ay=fig.add_subplot(2,1,1)
rawim=plt.imread(r'G:\Path\myimage.png')
ay.imshow(rawim,cmap='gray')
ax=fig.add_subplot(2,1,2,projection='3d')
x,y= ogrid[0:rawim.shape[0],0:rawim.shape[1]]
ax.plot_surface(x,y,0,rstride=5,cstride=5,facecolors=rawim,cmap='gray')
ax.view_init(elev=45, azim=12)
plt.show()
输出是这样的(经过编辑以包含图像)。
PS 在 Spyder for Python 2.75 中运行 Matplotlib 1.2.1
编辑添加-我主要是从 this post 建模我的方法,所以如果不是
rawim=plt.imread(r'G:\Path\myimage.png')
我用
from matplotlib.cbook import get_sample_data
fn = get_sample_data("lena.png", asfileobj=False)
rawim=read_png(fn)
完美运行。我已经尝试了几个 PNG 输出,产生了几种不同的方式,但没有爱。是的,它们是 0-1 之间的灰度。
【问题讨论】:
-
你能把指针指向相应的烹饪箱工作示例吗?
-
这对我来说似乎很好用。您是否尝试过使用不同的图像?另外,您的图像值是否在 0 和 1 之间浮动?
标签: python 3d matplotlib plot