使用matplotlib绘制3d图形

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用matplotlib绘制3d图形相关的知识,希望对你有一定的参考价值。

我正在使用python 3.7,我试图创建一个3d图,但我无法看到图。这是我的代码:

    from mpl_toolkits.mplot3d import axes3d
    fig=matplotlib.pyplot.figure()#creating a figure
    chart=fig.add_subplot(1,1,1,projection="3d")
    X,Y,Z=[1,2,3,4,5,6,7,8],[2,5,3,8,9,5,6,1],[3,6,2,7,5,4,5,6]
    chart.plot_wireframe(X,Y,Z)
    matplotlib.pyplot.show()

enter image description here谢谢:)

答案

不确定要绘制的是什么,但线框的z分量必须是二维的:

这显示了一个情节:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
import numpy as np

fig = plt.figure()
chart = fig.add_subplot(1,1,1,projection="3d")
X, Y, Z = np.array([[1, 2, 3, 4, 5, 6, 7, 8], 
                    [2 ,5 ,3 ,8 ,9 ,5 ,6 ,1], 
                    np.array([[1, 2, 3, 4, 5, 6, 7, 8], [3, 6, 2, 7, 5, 4, 5, 6]])])
chart.plot_wireframe(X, Y, Z)
plt.show()

enter image description here


相反,如果您想绘制曲线:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
import numpy as np

fig = plt.figure()
chart = fig.add_subplot(1,1,1,projection="3d")
X, Y, Z = np.array([[1, 2, 3, 4, 5, 6, 7, 8], 
                    [2 ,5 ,3 ,8 ,9 ,5 ,6 ,1], 
                    [3, 6, 2, 7, 5, 4, 5, 6]])
chart.plot(X, Y, Z)
plt.show()

enter image description here

以上是关于使用matplotlib绘制3d图形的主要内容,如果未能解决你的问题,请参考以下文章

Python-Matplotlib可视化(10)——一文详解3D统计图的绘制

Python中的图形绘制——3D绘图

在 Spyder IDE 中使用 Matplotlib 绘制内联或单独的窗口

在 matplotlib 中为旋转的 3D 图形制作动画

通过3D表面绘制2D平面

使用 python-matplotlib 进行连续 3D 绘图(即图形更新)?