制作3D轮廓图

时间:2018-05-02 00:17:54

标签: python numpy matplotlib contour

我一直在尝试使用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()

生成此图表。

Here is where I currently am.

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

This is where I hope to be.

1 个答案:

答案 0 :(得分:0)

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

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