【问题标题】:Making 3D Contour Plots制作 3D 等高线图
【发布时间】:2018-10-12 00:36:25
【问题描述】:

几天来,我一直在尝试使用 Python 获取“示例”图片(使用 3D 图形计算生成),但在显示除中间峰值以外的绘图片段时一直遇到麻烦达到规模。

我正在使用此代码:

import numpy as np
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
X, Y = np.mgrid[-1:1:30j, -1:1:30j]
Z = (2*X*Y) + (1/np.sqrt(X**2+Y**2))
ax.plot_surface(X, Y, Z, cmap="autumn_r", lw=0.5, rstride=1, cstride=1)
ax.contour(X, Y, Z, 10, lw=3, cmap="autumn_r", linestyles="solid", offset=-1)
ax.contour(X, Y, Z, 10, lw=3, colors="k", linestyles="solid")
plt.show()

生成此图。

它很接近,但它应该看起来更像这个。当我降低 30j 以试图降低它并希望两侧的耀斑更加明显时,它会摆脱整个峰值。我正在努力解决这个问题。

【问题讨论】:

  • 耀斑超出了您绘制的范围。

标签: python numpy matplotlib contour


【解决方案1】:

如果您尝试以下行怎么办?

X, Y = np.mgrid[-7:7:100j, -7:7:100j]

【讨论】:

  • 我仍然没有得到想要的结果。它只显示了“翅膀”,但没有高峰。
  • 使用 ax.set_zlim3d(-3, 6) 你应该会看到类似的图片
猜你喜欢
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多