±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÈçºÎÓÃpythonµÄmatplotlib¿âÖзḻµÄÈýά»æÍ¼¹¤¾ß½øÐлæÍ¼£¬ÔËÓÃÈýάͼ¸øÎÒÃǶÔÊý¾Ý´øÀ´¸ü¼ÓÉîÈëµØÀí½â£¬Ï£Íû¶Ô´ó¼ÒÓаïÖú¡£
±¾ÎÄÀ´×ÔÓÚcsdn £¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼£¬ÍƼö¡£ |
|
PythonÈýά»æÍ¼
1.´´½¨ÈýÎ¬×ø±êÖá¶ÔÏóAxes3D
´´½¨Axes3DÖ÷ÒªÓÐÁ½ÖÖ·½Ê½£¬Ò»ÖÖÊÇÀûÓùؼü×Öprojection='3d'lÀ´ÊµÏÖ£¬ÁíÒ»ÖÖÔòÊÇͨ¹ý´Ómpl_toolkits.mplot3dµ¼Èë¶ÔÏóAxes3DÀ´ÊµÏÖ£¬Ä¿µÄ¶¼ÊÇÉú³É¾ßÓÐÈýά¸ñʽµÄ¶ÔÏóAxes3D.
#·½·¨Ò»£¬ÀûÓùؼü×Ö
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
#¶¨Òå×ø±êÖá
fig = plt.figure()
ax1 = plt.axes(projection='3d')
#ax = fig.add_subplot(111,projection='3d') #ÕâÖÖ·½·¨Ò²¿ÉÒÔ»¶à¸ö×Óͼ
#·½·¨¶þ£¬ÀûÓÃÈýάÖá·½·¨
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D #¶¨ÒåͼÏñºÍÈýά¸ñÊ½×ø±êÖá
fig=plt.figure()
ax2 = Axes3D(fig) |
2.ÈýάÇúÏߺÍÉ¢µã
ËæºóÔÚ¶¨ÒåµÄ×ø±êÖáÉϻͼ£º
import numpy
as np
z = np.linspace(0,13,1000)
x = 5*np.sin(z)
y = 5*np.cos(z)
zd = 13*np.random.random(100)
xd = 5*np.sin(zd)
yd = 5*np.cos(zd)
ax1.scatter3D(xd,yd,zd, cmap='Blues') #»æÖÆÉ¢µãͼ
ax1.plot3D(x,y,z,'gray') #»æÖƿռäÇúÏß
plt.show() |

3.ÈýάÇúÃæ
ÏÂÒ»²½»ÈýάÇúÃæ£º
fig = plt.figure()
#¶¨ÒåеÄÈýÎ¬×ø±êÖá
ax3 = plt.axes(projection='3d')
#¶¨ÒåÈýάÊý¾Ý
xx = np.arange(-5,5,0.5)
yy = np.arange(-5,5,0.5)
X, Y = np.meshgrid(xx, yy)
Z = np.sin(X)+np.cos(Y)
#×÷ͼ
ax3.plot_surface(X,Y,Z,cmap='rainbow')
#ax3.contour(X,Y,Z, zdim='z',offset=-2£¬cmap='rainbow)
#µÈ¸ßÏßͼ£¬ÒªÉèÖÃoffset£¬ÎªZµÄ×îСֵ
plt.show() |

Èç¹û¼ÓÈëäÖȾʱµÄ²½³¤£¬»áµÃµ½¸ü¼ÓÇåÎúϸÄåµÄͼÏñ£º
ax3.plot_surface(X,Y,Z,rstride = 1, cstride = 1,cmap='rainbow'),ÆäÖеÄrowºÍcloum_strideΪºáÊú·½ÏòµÄ»æÍ¼²ÉÑù²½³¤£¬Ô½Ð¡»æÍ¼Ô½¾«Ï¸¡£

4.µÈ¸ßÏß
ͬʱ»¹¿ÉÒÔ½«µÈ¸ßÏßͶӰµ½²»Í¬µÄÃæÉÏ£º
from matplotlib
import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
#¶¨Òå×ø±êÖá
fig4 = plt.figure()
ax4 = plt.axes(projection='3d') #Éú³ÉÈýάÊý¾Ý
xx = np.arange(-5,5,0.1)
yy = np.arange(-5,5,0.1)
X, Y = np.meshgrid(xx, yy)
Z = np.sin(np.sqrt(X**2+Y**2)) #×÷ͼ
ax4.plot_surface(X,Y,Z,alpha=0.3,cmap='winter')
#Éú³É±íÃæ£¬ alpha ÓÃÓÚ¿ØÖÆÍ¸Ã÷¶È
ax4.contour(X,Y,Z,zdir='z', offset=-3,cmap="rainbow")
#Éú³Éz·½ÏòͶӰ£¬Í¶µ½x-yÆ½Ãæ
ax4.contour(X,Y,Z,zdir='x', offset=-6,cmap="rainbow")
#Éú³Éx·½ÏòͶӰ£¬Í¶µ½y-zÆ½Ãæ
ax4.contour(X,Y,Z,zdir='y', offset=6,cmap="rainbow")
#Éú³Éy·½ÏòͶӰ£¬Í¶µ½x-zÆ½Ãæ
#ax4.contourf(X,Y,Z,zdir='y', offset=6,cmap="rainbow")
#Éú³Éy·½ÏòͶӰÌî³ä£¬Í¶µ½x-zÆ½Ãæ£¬contourf()º¯Êý #É趨ÏÔʾ·¶Î§
ax4.set_xlabel('X')
ax4.set_xlim(-6, 4) #À¿ª×ø±êÖ᷶ΧÏÔʾͶӰ
ax4.set_ylabel('Y')
ax4.set_ylim(-4, 6)
ax4.set_zlabel('Z')
ax4.set_zlim(-3, 3) plt.show() |

5.Ëæ»úÉ¢µãͼ
¿ÉÒÔÀûÓÃscatter()Éú³É¸÷ÖÖ²»Í¬´óС£¬ÑÕÉ«µÄÉ¢µãͼ£¬Æä²ÎÊýÈçÏ£º
#º¯Êý¶¨Òå
matplotlib.pyplot.scatter(x, y,
s=None, #É¢µãµÄ´óС array scalar
c=None, #ÑÕÉ«ÐòÁÐ array¡¢sequency
marker=None, #µãµÄÑùʽ
cmap=None, #colormap ÑÕÉ«Ñùʽ
norm=None, #¹éÒ»»¯ ¹éÒ»»¯µÄÑÕÉ«camp
vmin=None, vmax=None, #¶ÔÓ¦ÉÏÃæµÄ¹éÒ»»¯·¶Î§
alpha=None, #͸Ã÷¶È
linewidths=None, #Ïß¿í
verts=None, #
edgecolors=None, #±ßÔµÑÕÉ«
data=None,
**kwargs
)
#ref:https://matplotlib.org/api/_as_gen /matplotlib.pyplot.scatter.html
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
#¶¨Òå×ø±êÖá
fig4 = plt.figure()
ax4 = plt.axes(projection='3d') #Éú³ÉÈýάÊý¾Ý
xx = np.random.random(20)*10-5 #È¡100¸öËæ»úÊý£¬·¶Î§ÔÚ5~5Ö®¼ä
yy = np.random.random(20)*10-5
X, Y = np.meshgrid(xx, yy)
Z = np.sin(np.sqrt(X**2+Y**2)) #×÷ͼ
ax4.scatter(X,Y,Z,alpha=0.3,c=np.random. random(400),s=np.random.randint(10,20,
size=(20, 40))) #Éú³ÉÉ¢µã.ÀûÓÃc¿ØÖÆÑÕÉ«ÐòÁÐ,s¿ØÖÆ´óС
#É趨ÏÔʾ·¶Î§
plt.show() |

|