import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()#定义一个figure窗口
ax = Axes3D(fig)#3D的脊椎
# X, Y value
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)#生成x和y的随机数 -4到4,0.25是步长
X, Y = np.meshgrid(X, Y)#类似等高线
R = np.sqrt(X ** 2 + Y ** 2)
# height value
Z = np.sin(R)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))#三个坐标轴,传参rstride=1, cstride=1跨度比较小
"""
============= ================================================
Argument Description
============= ================================================
*X*, *Y*, *Z* Data values as 2D arrays
*rstride* Array row stride (step size), defaults to 10
*cstride* Array column stride (step size), defaults to 10
*color* Color of the surface patches
*cmap* A colormap for the surface patches.
*facecolors* Face colors for the individual patches
*norm* An instance of Normalize to map values to colors
*vmin* Minimum value to map
*vmax* Maximum value to map
*shade* Whether to shade the facecolors
============= ================================================
"""
# I think this is different from plt12_contours
ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow'))
#zdir按照z轴进行旋转,offset压比0点第几个坐标轴
"""
========== ================================================
Argument Description
========== ================================================
*X*, *Y*, Data values as numpy.arrays
*Z*
*zdir* The direction to use: x, y or z (default)
*offset* If specified plot a projection of the filled contour
on this position in plane normal to zdir
========== ================================================
"""
ax.set_zlim(-2, 2)
plt.show()
MAC系统操作方法:
1、找到preference
preference
2、在Tools-Python Scientific中把勾去掉,会在新窗口生成图像,就可以旋转图像啦!
Tools-Python Scientific
Windows系统操作方法:
1、打开pycharm的settins
2、在settins里面找到 Tools --> Python Scientific 点击后我们可以看到如下图;
我们将 Show plots in tool window 前面的 √ 去掉即可。