在Python中绘制质子对磁场的速度

时间:2018-11-16 17:46:29

标签: python plot physics

我一直试图绘制质子相对于磁场的线速度。质子在一个圆形轨道中运动 垂直于速度的均匀磁场。当均匀磁场从0.35 T增加到2 T时,轨道半径从14 cm变为8 cm。

#!/usr/bin/env python
import matplotlib.pyplot as plt
import numpy as np
import scipy.constants
p  = 1.6
q  = scipy.constants.e 
p_mass    = scipy.constants.proton_mass

B_List = []
r_List = []
v_List = []
for r in np.linspace (0.14, 0.08):
    for B in np.linspace (0.35, 2):
        v = (r*q*B)/p_mass  
        B_List.append(B)
        v_List.append(v)
fig = plt.figure()
plt.plot(B_List,v_List)
fig.suptitle('Linear Speed Vs Magnatic Field', fontsize=18)
plt.xlabel('Magnatic field (T)', fontsize=14)
plt.ylabel('Speed of the Proton (m/s)', fontsize=14)
plt.show()

由于某些原因,我在图上有多条线。

enter image description here

我试图按以下方式使空格= 2(在linspace中):

for r in np.linspace (0.14, 0.08,2, 2):
for B in np.linspace (0.35, 2, 2):

但仍然出现了这些多行。

我在这里的问题是,如何摆脱这些限制?

1 个答案:

答案 0 :(得分:0)

您的主要问题是您使用plot中的pyplot函数来显示您的观点。该函数在连续绘制的点之间绘制线段。

请使用scatter函数,该函数仅显示点而没有任何连接线段。将plot替换为scatter时,得到以下结果。单击图形以查看其完整大小,然后您将看到每个明显的垂直线段实际上彼此靠近50个点。尽管您没有提到任何循环路径,但这似乎是正确的。那是你想要的吗?

enter image description here