如何在Jupyter-lab中控制Matplotlib 3D图形的显示尺寸等参数?
Matplotlib 3D 图形配置方案(Jupyter Lab 环境)
核心需求:放大图形
创建Figure对象时直接指定figsize参数即可调整整体尺寸,配合dpi还能提升渲染清晰度:
import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np # 创建大尺寸画布,figsize(width, height)单位为英寸 fig = plt.figure(figsize=(12, 10), dpi=100) ax = fig.add_subplot(projection='3d') # 生成示例数据 X = np.linspace(-5, 5, 100) Y = np.linspace(-5, 5, 100) X, Y = np.meshgrid(X, Y) Z = np.sin(np.sqrt(X**2 + Y**2)) # 绘制3D曲面 ax.plot_surface(X, Y, Z) # 直接输出figure变量即可在Jupyter Lab渲染 fig
如果已经创建好Figure,也能动态调整尺寸:
fig.set_size_inches(14, 12) fig
添加图形边缘线条
针对plot_surface、plot_wireframe这类3D绘图对象,通过edgecolor指定边缘颜色,linewidth调整线条粗细:
# 延续上面的画布和数据 ax.plot_surface(X, Y, Z, edgecolor='black', linewidth=0.5) # 线框图直接设置颜色和宽度即可 # ax.plot_wireframe(X, Y, Z, color='black', linewidth=1) fig
设置3D光源效果
用LightSource类自定义光源方向,增强3D立体感:
from matplotlib.colors import LightSource # azim是绕z轴的方位角,alt是与xy平面的高度角 ls = LightSource(azim=45, alt=60) # 对Z数据进行着色处理 rgb = ls.shade(Z, plt.cm.viridis) # 用着色后的数据绘图 ax.plot_surface(X, Y, Z, facecolors=rgb, edgecolor='gray') fig
内容的提问来源于stack exchange,提问作者Darren Oakey
相关产品推荐
相关产品推荐

