Я пытаюсь использовать matplotlib для создания 3D-фигур, где плоскость xy является изображением, а затем некоторые 3D-треки рисуются сверху (эта часть работает просто отлично). Проблема заключается в том, что хотя импортированный PNG показывает просто отлично с imshow, и хотя я могу построить изображение на трехмерной оси, если я просто использую пример из кулинарной книги, мое изображение просто появляется как безликий черный ящик. Я уверен, что мне не хватает чего-то маленького - спасибо заранее!Matplotlib-Imported PNG не будет отображаться в 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()
Выход выходит как это (отредактировано, чтобы включить изображение).
Запуск Matplotlib 1.2.1 в Spyder для Python 2.75 PS
отредактирован адд я был в значительной степени моделирования мой подход от 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.
Не могли бы вы поместить указатель на соответствующий рабочий стол для приготовления пищи? – Evert
Кажется, все в порядке. Вы пытались использовать разные изображения? Кроме того, ваши значения изображений плавают между 0 и 1? –