我想创建列表,所以我使用了:
x_ticks=np.arange(x1, x2, 6)
print(x_ticks)
print(type(x_ticks))
print(x_ticks[5])
结果是:
[-1.15e-14]
<class 'numpy.ndarray'>
Traceback (most recent call last):
File "el_motion.py", line 371, in <module>
print(x_ticks[5])
IndexError: index 5 is out of bounds for axis 0 with size 1
为什么没有打印 6 个元素?谢谢
编辑
如何使用此列表和循环在 3D 中绘制小线?
x1=-1.15e-14
x2=0.009e-14
x_ticks=np.linspace(x1, x2, 6)
print(x_ticks)
print(type(x_ticks))
print(x_ticks[5])
stepx=(x2-x1)/6
print(stepx)
for xi in range(1, 6):
ax.plot([xi*stepx, xi*stepx], [-6.3e-15, -6.4e-15], [0,0])
结果是一行不在所需位置。我想在平面z中打印它,线的长度由y设置,起点由x定义。
numpy arange(( 的第 3 个参数是step
,元素的数量取决于x1
、x2
和6
,你可能想打印出x_ticks
。例子:
>>> np.arange(0, 24, 6)
array([ 0, 6, 12, 18])
>>> np.arange(0, 30, 6)
array([ 0, 6, 12, 18, 24])
我的猜测是 x1 和 x2 之间的差异小于提供的步长间隔 (6(。例如:
np.arange(1, 5)
指纹
[1, 2, 3, 4]
而对于
np.arange(1, 5, 6)
6 的步长太大,因此它只返回第一个值
[1]
另一方面,np.linspace(x1, x2, 6( 将返回 x1 和 x2 之间均匀间隔的增量,产生 6 个数字