Python Matplotlib导入PNG赢得';不显示在三维绘图中

Python Matplotlib导入PNG赢得';不显示在三维绘图中,python,3d,matplotlib,plot,Python,3d,Matplotlib,Plot,我尝试使用matplotlib生成三维图形,其中xy平面是一个图像,然后在顶部绘制一些三维轨迹(该部分工作正常)。问题是,即使我导入的PNG在imshow中显示得很好,即使我可以在3D轴上绘制图像(如果我只使用烹饪书中的一个示例),我的图像也只是显示为一个没有任何特征的黑匣子。我肯定我错过了一些小东西-提前谢谢 import matplotlib as mpl from mpl_toolkits.mplot3d import Axes3D, art3d from pylab import ogr

我尝试使用matplotlib生成三维图形,其中xy平面是一个图像,然后在顶部绘制一些三维轨迹(该部分工作正常)。问题是,即使我导入的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

编辑添加-我主要是从中建模我的方法,因此如果

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之间。

您应该为FaceColor使用显式颜色数组。 您需要具有形状(Nx、Ny、4)的对象,其中“4”维度包含RGBA值。
另外,在plot\u surface调用中去掉cmap='gray'。

你能把一个指针指向相应的cookbox工作示例吗?它对我来说似乎很好。你试过使用不同的图像吗?另外,图像值是否在0和1之间浮动?