gs1 = gridspec.GridSpec(1, 2) gs1.update(top=1-2/4, bottom=0.0, left=0.01, right=0.99, wspace=0) ax = plt.subplot(gs1[:, 0], projection='3d') ax.axis('off') r1 = [x_star.min(), x_star.max()] r2 = [data['t'].min(), data['t'].max()] r3 = [y_star.min(), y_star.max()] for s, e in combinations(np.array(list(product(r1,r2,r3))), 2): if np.sum(np.abs(s-e)) == r1[1]-r1[0] or np.sum(np.abs(s-e)) == r2[1]-r2[0] or np.sum(np.abs(s-e)) == r3[1]-r3[0]: ax.plot3D(*zip(s,e), color="k", linewidth = 0.5) ax.scatter(x_train, t_train, y_train, s = 0.1) ax.contourf(X,UU_star,Y, zdir = 'y', offset = t_star.mean(), cmap='rainbow', alpha = 0.8) ax.text(x_star.mean(), data['t'].min() - 1, y_star.min() - 1, '$x$') ax.text(x_star.max()+1, data['t'].mean(), y_star.min() - 1, '$t$') ax.text(x_star.min()-1, data['t'].min() - 0.5, y_star.mean(), '$y$') ax.text(x_star.min()-3, data['t'].mean(), y_star.max() + 1, '$u(t,x,y)$') ax.set_xlim3d(r1) ax.set_ylim3d(r2) ax.set_zlim3d(r3) axisEqual3D(ax)
时间: 2024-02-07 22:03:03 浏览: 130
辰竹 GS8072-EX/GS8072-EX.M/GS8082-EX隔离栅产品说明.pdf
这段代码使用了 Matplotlib 库中的 gridspec、subplot、plot3D、scatter、contourf 等函数来生成一个三维坐标轴的图形,并在坐标轴上绘制了数据点和等高线图。具体来说,代码首先定义了一个 1 行 2 列的网格系统 gs1,并设置了各种网格参数(如顶部位置、左侧位置、右侧位置、宽度等)。然后,通过 subplot 函数在网格系统的第一列生成一个带有 3D 投影的坐标轴 ax,并将其设置为不可见状态。接着,代码定义了三个范围变量 r1、r2、r3,并通过 product 函数取出它们的笛卡尔积,再通过 combinations 函数将笛卡尔积中的所有点两两组合,并分别判断这些点之间的距离是否等于 r1、r2、r3 范围的大小,如果是,则在坐标轴上绘制一条黑色线段。然后,代码使用 scatter 函数在坐标轴上绘制数据点,使用 contourf 函数在坐标轴上绘制等高线图。最后,代码在坐标轴上添加了一些文本标签,并设置了坐标轴的范围和刻度。
阅读全文