2

xy 平面が画像である 3D フィギュアを生成するために matplotlib を使用しようとしています。その上にいくつかの 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を実行しています

追加するために編集-私は主にこの投稿からアプローチをモデル化していたので、代わりに

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 の間のグレースケールです。

4

1 に答える 1