绘制 python 中电容器极板之间的电子偏转
Plotting the electron deflection between plates of the capacitor in python
我想画出电子的偏转曲线,编译程序时没有显示任何图形。
到目前为止,这是我的代码,注释代表 SI 单位。
import matplotlib.pyplot as plt
v=25300000 # m/s
E=1000 # V/m
d=10 # m
m=9*pow(10,-31) #kg
q=1.6*pow(10,-19) # C
for i in range(0,d):
y=(q*E*i*i)/(2*m*v*v)
plt.plot(i,y)
plt.xlabel("x")
plt.ylabel("y")
plt.show()
我认为您正在寻找散点图。 plt.plot
改为绘制曲线。要制作散点图,请将 x 和 y 坐标分组到列表中并调用 plt.scatter
:
import matplotlib.pyplot as plt
v=25300000 # m/s
E=1000 # V/m
d=10 # m
m=9*pow(10,-31) #kg
q=1.6*pow(10,-19) # C
x_list = []
y_list = []
for i in range(0,d):
y=(q*E*i*i)/(2*m*v*v)
x_list.append(i)
y_list.append(y)
plt.xlabel("x")
plt.ylabel("y")
plt.scatter(x_list, y_list)
plt.show()
plt.plot
需要不止一个点(除非你指定一个标记),所以
plt.plot(i,y)
当 i
和 y
是单独的值时, 不会生成图表,只有当它们是数组或类似数组的对象时。您可以将其替换为 plt.scatter
、
import matplotlib.pyplot as plt
v=25300000 # m/s
E=1000 # V/m
d=10 # m
m=9*pow(10,-31) #kg
q=1.6*pow(10,-19) # C
for i in range(0,d):
y=(q*E*i*i)/(2*m*v*v)
plt.scatter(i,y)
plt.xlabel("x")
plt.ylabel("y")
plt.show()
哪个会给你
或列出 y
和 x
值,
y = []
x = []
for i in range(0, d):
y.append((q*E*i*i)/(2*m*v*v))
x.append(i)
plt.plot(x,y)
或者,更好的是,制作 x
和 y
numpy 数组:
import numpy as np
# ...
x = np.arange(0,10)
y = (q*E*x**2)/(2*m*v*v)
plt.plot(x,y)
其中任何一个都会给你
我想画出电子的偏转曲线,编译程序时没有显示任何图形。 到目前为止,这是我的代码,注释代表 SI 单位。
import matplotlib.pyplot as plt
v=25300000 # m/s
E=1000 # V/m
d=10 # m
m=9*pow(10,-31) #kg
q=1.6*pow(10,-19) # C
for i in range(0,d):
y=(q*E*i*i)/(2*m*v*v)
plt.plot(i,y)
plt.xlabel("x")
plt.ylabel("y")
plt.show()
我认为您正在寻找散点图。 plt.plot
改为绘制曲线。要制作散点图,请将 x 和 y 坐标分组到列表中并调用 plt.scatter
:
import matplotlib.pyplot as plt
v=25300000 # m/s
E=1000 # V/m
d=10 # m
m=9*pow(10,-31) #kg
q=1.6*pow(10,-19) # C
x_list = []
y_list = []
for i in range(0,d):
y=(q*E*i*i)/(2*m*v*v)
x_list.append(i)
y_list.append(y)
plt.xlabel("x")
plt.ylabel("y")
plt.scatter(x_list, y_list)
plt.show()
plt.plot
需要不止一个点(除非你指定一个标记),所以
plt.plot(i,y)
当 i
和 y
是单独的值时, 不会生成图表,只有当它们是数组或类似数组的对象时。您可以将其替换为 plt.scatter
、
import matplotlib.pyplot as plt
v=25300000 # m/s
E=1000 # V/m
d=10 # m
m=9*pow(10,-31) #kg
q=1.6*pow(10,-19) # C
for i in range(0,d):
y=(q*E*i*i)/(2*m*v*v)
plt.scatter(i,y)
plt.xlabel("x")
plt.ylabel("y")
plt.show()
哪个会给你
或列出 y
和 x
值,
y = []
x = []
for i in range(0, d):
y.append((q*E*i*i)/(2*m*v*v))
x.append(i)
plt.plot(x,y)
或者,更好的是,制作 x
和 y
numpy 数组:
import numpy as np
# ...
x = np.arange(0,10)
y = (q*E*x**2)/(2*m*v*v)
plt.plot(x,y)
其中任何一个都会给你