# 所有需要用的包

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt
import numpy as np
import random
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号


# 二维图像

import numpy as np
import pylab as plt
x = np.arange(-100, 100, 1) #定义x的范围为-100至100，步长为1
y = x * x
plt.xlabel('x') #绘制X轴
plt.ylabel('y') #绘制Y轴
plt.title("y = x * x") #绘制图像标题
plt.plot(x, y)
plt.show()


# 三维图像

X,Y,Z坐标值参数
rstride数组行距（步长大小）
cstride数组列距（步长大小）
color所有曲面块颜色
cmap所有曲面块颜色映射
facecolors单独曲面块表面颜色
vmin映射最小值
vmax映射最大值

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
from matplotlib import pyplot as plt
import random

fig = plt.figure()
ax = Axes3D(fig)
x=np.arange(-30,30,1)
y=np.arange(-30,30,1)
x, y = np.meshgrid(x, y)
z=x**2+y**2

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

ax.plot_surface(x, y, z, cmap='rainbow')
plt.show()


# 散点图绘制

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
from matplotlib import pyplot as plt
import random

fig = plt.figure()
ax = Axes3D(fig)
x=np.arange(-30,30,1)
y=np.arange(-30,30,1)
x, y = np.meshgrid(x, y)
z=x**2+y**2

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

ax.scatter(x, y, z,marker=".",color="blue")
plt.show()


# 心形图绘制

from matplotlib import pyplot as plt
import numpy as np

size = 2
x = np.linspace(-size, size, 400)
plt.plot(x, np.sqrt(1-(np.abs(x)-1)*(np.abs(x)-1)))
plt.plot(x, np.arccos(1-np.abs(x))-np.pi)
plt.show()


from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np

def heart_3d(x,y,z):
return (x**2+(9/4)*y**2+z**2-1)**3-x**2*z**3-(9/80)*y**2*z**3

def plot_implicit(fn, bbox=(-1.5, 1.5)):
xmin, xmax, ymin, ymax, zmin, zmax = bbox*3
fig = plt.figure()
A = np.linspace(xmin, xmax, 100) # resolution of the contour
B = np.linspace(xmin, xmax, 40) # number of slices
A1, A2 = np.meshgrid(A, A) # grid on which the contour is plotted

for z in B: # plot contours in the XY plane
X, Y = A1, A2
Z = fn(X, Y, z)
cset = ax.contour(X, Y, Z+z, [z], zdir='z', colors=('r',))

for y in B: # plot contours in the XZ plane
X, Z = A1, A2
Y = fn(X, y, Z)
cset = ax.contour(X, Y+y, Z, [y], zdir='y', colors=('red',))

for x in B: # plot contours in the YZ plane
Y, Z = A1, A2
X = fn(x, Y, Z)
cset = ax.contour(X+x, Y, Z, [x], zdir='x',colors=('red',))

ax.set_zlim3d(zmin, zmax)
ax.set_xlim3d(xmin, xmax)
ax.set_ylim3d(ymin, ymax)

plt.show()

if __name__ == '__main__':
plot_implicit(heart_3d)


07-27

08-20
07-12
01-29 1252
09-21 8万+
05-03 6357
04-28 1435
08-29 887
01-04 5万+
10-11 1万+
07-19 886
01-11 8392
06-09 4万+
01-14 404