【问题标题】:Move 3d plot on the xy plane在 xy 平面上移动 3d 图
【发布时间】:2022-12-04 20:22:15
【问题描述】:

我正在尝试绘制我的数据,但我的 3d 图超出范围,这意味着它在 z 轴 0 点上方。我希望它位于 xy 平面上,这意味着偏移量为 -160。有没有办法添加偏移量?(请检查 MyImage 以可视化我正在尝试做的事情)

我的代码:

ax = plt.figure().add_subplot(projection='3d')
ax.set(xlim=(-3, 2), ylim=(0.25, 2), zlim=(-160, 0), xlabel='CV1', ylabel='CV2', zlabel='free energy (kJ/mol)')

ax.plot_surface(xvals, yvals, zvals, edgecolor='royalblue', lw=0.8, rstride=1, cstride=1,alpha=0.3, cmap= 'plasma')

ax.contour(xvals, yvals, zvals, zdir='z', offset= -160, cmap='plasma')
plt.savefig('myplot.png')
plt.show()

(x_vals、y_vals、z_vals 是重塑的 ndarrays,它们的形状((101,101))

MyImage

我搜索了 plot_surface 函数的文档,但找不到添加偏移量的方法。

【问题讨论】:

    标签: python matplotlib plot 3d move


    【解决方案1】:

    要在 Matplotlib 中为 3D 图添加偏移量,您可以使用 plot_surface() 函数的 zoffset 参数。此参数指定绘制表面的 z 坐标。

    下面是一个示例,说明如何使用 zoffset 参数设置绘图的偏移量:

    ax = plt.figure().add_subplot(projection='3d')
    ax.set(xlim=(-3, 2), ylim=(0.25, 2), zlim=(-160, 0), xlabel='CV1', ylabel='CV2', zlabel='free energy (kJ/mol)')
    
    # Set the zoffset parameter to -160 to set the offset of the plot
    ax.plot_surface(xvals, yvals, zvals, edgecolor='royalblue', lw=0.8, rstride=1, cstride=1,alpha=0.3, cmap= 'plasma', zoffset=-160)
    
    ax.contour(xvals, yvals, zvals, zdir='z', offset= -160, cmap='plasma')
    plt.savefig('myplot.png')
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 2023-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多