程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Matplotlib 3D Quiver 绘制指向随机方向的单位向量的问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Matplotlib 3D Quiver 绘制指向随机方向的单位向量的问题?

开发过程中遇到Matplotlib 3D Quiver 绘制指向随机方向的单位向量的问题的问题如何解决?下面主要结合日常开发的经验,给出你关于Matplotlib 3D Quiver 绘制指向随机方向的单位向量的问题的解决方法建议,希望对你解决Matplotlib 3D Quiver 绘制指向随机方向的单位向量的问题有所启发或帮助;

你好,我想生成一个单位向量,它指向三维空间中的随机方向,但我需要 quiver 3d 的帮助,因为这段代码给了我 ValueError: need at least one array to concatenate。谢谢!

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
np.random.seed(420)
campione = 10 # I want generate 10 vectors to plot
phi = 2*np.pi * np.random.random(size=campione)
theta = np.arccos(1 - 2*np.random.random(size=campione))
vett3D = np.array([ np.sin(theta)*np.cos(phi),np.sin(theta)*np.sin(phi),np.cos(theta) ])    
origine = np.zeros((3,campione))
fig = plt.figure(num=None,figsize=(8,6),dpi=800,facecolor='w',edgecolor='k')
ax = fig.gca(projection='3d')
ax.quiver(origine,vett3D)
plt.show()

解决方法

以此为指导:https://matplotlib.org/stable/gallery/mplot3d/quiver3d.html

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(1)

campione = 10 # I want generate 10 vectors to plot

phi = np.pi * np.random.random(size=campione)
theta = 2 * np.pi * np.random.random(size=campione)

ax = plt.figure().add_subplot(projection='3d')

# Make the grid
points3d = np.random.uniform(low=-3,high=3,size=(campione,3)) #Each row is a point x,y,z

# # Make the direction data for the arrows
u = np.cos(theta) * np.sin(phi) #Using spherical coordinates
v = np.sin(theta) * np.sin(phi)
w = np.cos(phi)

ax.quiver(points3d[:,0],points3d[:,1],2],u,v,w,normalize=False)

ax.set_xlim(-4,4)
ax.set_ylim(-4,4)
ax.set_zlim(-5,5)

plt.show()

Matplotlib 3D Quiver 绘制指向随机方向的单位向量的问题

大佬总结

以上是大佬教程为你收集整理的Matplotlib 3D Quiver 绘制指向随机方向的单位向量的问题全部内容,希望文章能够帮你解决Matplotlib 3D Quiver 绘制指向随机方向的单位向量的问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: