ax.view_init参数

本文探讨了在三维可视化中使用仰角方位角进行视图初始化的方法,具体介绍了如何通过设置角度参数实现特定视角展示,如原始形状的可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仰角 方位角

ax_3d[0].view_init(0, 90)
90,0的话就是原始形状,数据什么样,可视化结果什么样

下列是调用clear_plot的代码,按你的建议修改后3D图和颜色条越来越向左移动,且3D图越来越小,颜色条的大小不变,颜色条在3D图右边,怎么修改代码 def plot_permeability_field(self, permeability, grid_bounds, opacity=0.2): """ 绘制三维渗透率场 参数: permeability: 三维渗透率网格 使用网格索引为主的数据 opacity: 渗透率场的透明度 (0-1) """ if opacity is not None: self.opacity = opacity self.permeability_data = permeability self.grid_bounds = grid_bounds self.grid_size = permeability.shape # 清除之前的绘图 self.clear_plot() # 创建网格坐标 x = np.linspace(grid_bounds[0], grid_bounds[1], permeability.shape[0]) y = np.linspace(grid_bounds[2], grid_bounds[3], permeability.shape[1]) z = np.linspace(grid_bounds[4], grid_bounds[5], permeability.shape[2]) # 创建点网格 X, Y, Z = np.meshgrid(x, y, z, indexing='ij') # 重塑数据为点集 points = np.column_stack((X.ravel(), Y.ravel(), Z.ravel())) values = permeability.ravel() # 在plot_permeability_field方法中,数据标准化后添加: if np.min(values) < 0 and np.max(values) > 0: # 判断是否需要发散映射 self.color_manager.add_diverging_midpoint(0) # 以0为中心点 # 计算颜色映射范围 vmin = np.min(permeability[permeability > 0]) vmax = np.max(permeability) # 创建颜色映射对象 cmap = self.color_manager.color_palettes['geology'] # 直接访问预设方案 norm = colors.Normalize(vmin=vmin, vmax=vmax) # 在 plot_permeability_field 方法中: # 绘制渗透率场(使用过滤后的点) self.scatter_plot = self.ax.scatter( points[:, 0], points[:, 1], points[:, 2], c=values, cmap=cmap, norm=norm, s=10, alpha=self.opacity, edgecolors='none', picker=True ) # 绘制后配置颜色条 self.color_manager.update_colorbar( self.scatter_plot, "Permeability (mD)" ) # ...原有代码... self.color_manager.update_colorbar(self.scatter_plot, "Permeability (mD)") self.adjust_plot_padding() # 新增调用 # 添加自动更新回调 if hasattr(self.scatter_plot, 'callbacks'): self.scatter_plot.callbacks.connect('changed', lambda m: self.color_manager._on_mappable_changed(m)) # 添加颜色范围验证日志 logger.info(f"颜色条设置: vmin={vmin}, vmax={vmax}, 点数={len(values)}") # 设置图表标题和坐标轴标签 self.ax.set_title("渗透率场可视化", fontsize=12) self.ax.set_xlabel("X ", fontsize=10) self.ax.set_ylabel("Y ", fontsize=10) self.ax.set_zlabel("Z ", fontsize=10) # 设置3D坐标轴的显示范围 # grid_bounds是一个包含6个元素的列表/元组,依次表示: # [x_min, x_max, y_min, y_max, z_min, z_max] self.ax.set_xlim(grid_bounds[0], grid_bounds[1]) # 设置X轴显示范围 self.ax.set_ylim(grid_bounds[2], grid_bounds[3]) # 设置Y轴显示范围 self.ax.set_zlim(grid_bounds[4], grid_bounds[5]) # 设置Z轴显示范围 # 设置初始视角 self.ax.view_init(elev=30, azim=45)
07-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值