xy 平面に 2D 画像を重ねて 3D 形状をプロットしようとしています。私はPythonを使い始めたばかりなので、これは必要以上に困難です。
ここでのこの質問は、私がやろうとしていることに対処しています: Python を使用した 3D プロットでの画像オーバーレイ。しかし、提供されたコードを実行すると、次のエラーが発生します。
File "test.py", line 13, in <module>
ax.plot_surface(x, y, 10, rstride=5, cstride=5, facecolors=img)
File "/usr/lib64/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.py", line 663, in plot_surface
rows, cols = Z.shape
AttributeError: 'int' object has no attribute 'shape'
使用している画像は、「test.py」と同じフォルダーに保存されています。上記の質問では get_sample_data の画像を使用していますが、それを編集して自分の画像を使用すると、コードは次のようになります。
from pylab import *
from mpl_toolkits.mplot3d import Axes3D
from matplotlib._png import read_png
img = read_png('milkyway.png')
x, y = ogrid[0:img.shape[0], 0:img.shape[1]]
ax = gca(projection='3d')
ax.plot_surface(x, y, 10, rstride=5, cstride=5, facecolors=img)
show()
get_sample_data を使用しても独自の画像を使用しても、同じエラーが発生します。私が変更できるものについて何か提案はありますか?ありがとう!