从理解原理入手,使用matplotlib绘制你想要的任何图形!
欢迎浏览我的专栏:https://blog.csdn.net/qq_40761869/article/category/9403564
# 要绘制三维图像
# 首先需要窗口对象figure,这个类不变
# 其次需要坐标系对象axes,这个类发生了变化(Axes3D),但是由于开发者的优化,我们可以像使用极坐标系那样直接在axes创建函数中加入projection='3d'来创建三维坐标系
# 然后就是对axes进行操作的各种函数,显然这些函数的位置在Axes3D类中,由axes对象调用
# 这是三维坐标系所在的位置,注意是mpl_toolkits而非matplotlib
from mpl_toolkits import mplot3d
from matplotlib import pyplot
from numpy import arange, array, sqrt, meshgrid
from numpy.random import normal
# 关于Axes3D都有哪些常用的方法,见这篇博客https://blog.csdn.net/jasonzhoujx/article/details/81780774
# 创建窗口对象fig和Axes3D对象axes3d
fig = pyplot.figure()
# 绘制三维球面
axes3d = fig.add_subplot(121, projection='3d')
# 生成数据(圆球上半部分)
x = arange(-1, 1, 0.1)
y = arange(-1, 1, 0.1)
x, y = meshgrid(x, y)
z = sqrt(1-x**2-y**2)
# 绘制图像(整个圆球)
axes3d.plot_surface(x, y, z)
axes3d.plot_surface(x, y, -z)
#再绘制一幅3d的电子云图
axes3d = fig.add_subplot(122, projection='3d')
# 生成数据
x = normal(0, 1, 1000)
y = normal(0, 1, 1000)
z = normal(0, 1, 1000)
# 绘制散点图
axes3d.scatter3D(x, y, z, s=1)
# 显示
pyplot.show()