繁体   English   中英

如何使用Python在3D图形表面上绘制图像文件? - 不作为平面绘图

[英]How to plot an image file on a 3D graph surface using Python? - not plotting as a flat plane

有没有办法使用Python在3D图形表面上绘制图像文件?

我已经看到了几种将此绘制为平面的方法,但我希望图像覆盖在绘图的表面上。 这可能吗?

您需要将曲面的颜色更改为图像的颜色,如@sarwar建议的示例所示。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.cbook import get_sample_data
from matplotlib._png import read_png
import numpy as np

fn = get_sample_data("lena.png", asfileobj=False)
img = read_png(fn)

x, y = np.mgrid[0:img.shape[0], 0:img.shape[1]]

ax = plt.gca(projection='3d')
ax.plot_surface(x, y, np.sin(0.02*x)*np.sin(0.02*y), rstride=2, cstride=2,
                facecolors=img)
plt.show()

这就是结果

在此输入图像描述

看看这个问题的答案。 它们使用固定的z,但您可以用地形数据替换它以获得所需的效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM