发布于2023-02-05 16:19 阅读(513) 评论(0) 点赞(3) 收藏(5)
I want to plot the number of spherical wavefronts I input using Python, this is my code.I'm using Axes3D to plot, but I have a problem, when I plot with "ax.plot_surface(x, y, z, facecolors=plt.cm.coolwarm(w), shade=False)" doesn´t work and appears me the next message:
ValueError: Argument Z must be 2-dimensional.
My code is the following:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def spherical_wavefront(n):
x, y, z = np.meshgrid(np.linspace(-1, 1, n), np.linspace(-1, 1, n), np.linspace(-1, 1, n))
r = np.sqrt(x**2 + y**2 + z**2)
wavefront = np.empty((n, n, n))
wavefront[r <= 1] = 1/r[r <= 1] * np.exp(1j * r[r <= 1])
return x, y, z, np.real(wavefront)
num_wavefronts = int(input("How many spherical wavefronts would you like to plot? "))
fig = plt.figure()
for i in range(num_wavefronts):
x, y, z, w = spherical_wavefront(100)
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, facecolors=plt.cm.coolwarm(w), shade=False)
ax.set_title(f'Spherical Wavefront {i + 1}')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/1895750/b6dcb020bbd85eabb8c7/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!