画点:
from matplotlib import pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D x = np.random.rand(100) y = np.random.rand(100) z = np.random.rand(100) fig = plt.figure() ax = Axes3D(fig, auto_add_to_figure=False) fig.add_axes(ax) ax.scatter(x,y,z,s=10,color="r",marker='o') plt.show()
画线:
from matplotlib import pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D zline = np.linspace(0,15,1000) xline = np.sin(zline) yline = np.cos(zline) fig = plt.figure() ax = Axes3D(fig, auto_add_to_figure=False) fig.add_axes(ax) ax.plot(xline,yline,zline) plt.show()
关于ax = Axes3D(fig)的警告:/var/folders/y1/x8ktr6kd0jz8dms037zl0_t00000gn/T/ipykernel_83156/2478856790.py:1: MatplotlibDeprecationWarning: Axes3D(fig) adding itself to the figure is deprecated since 3.4. Pass the keyword argument auto_add_to_figure=False and use fig.add_axes(ax) to suppress this warning. The default value of auto_add_to_figure will change to False in mpl3.5 and True values will no longer work in 3.6. This is consistent with other Axes classes.
ax = Axes3D(fig, auto_add_to_figure=False) fig.add_axes(ax)
在控制台中逐行运行代码,不报错也不显示图片的解决办法:
fig = plt.figure() ax = Axes3D(fig, auto_add_to_figure=False) fig.add_axes(ax)
写成图中形式会报错