使用 arange 定义变量进行绘图

我最近开始学习Python。


我了解到,为了定义自变量(下例中的 z),您可以使用 numpy.linspace() 编写:


from matplotlib import pyplot as pp

import numpy as np

from math import pi


#z=np.linspace(1,-1) z definition works

z=np.arange(1,-1) #z definition does not work

w=z


pp.plot(z,w)

pp.xlabel("Input")

pp.ylabel("Output")

pp.title("Function")

pp.show()

print(z,w)


但是,如果我们使用 np.arange 定义 z (参见注释行,似乎不可能显示图(没有图表出现)。如果我想对自变量使用后一个定义,我仍然可以绘制其他变量或我被迫使用 linspace 定义吗?谢谢


慕雪6442864
浏览 75回答 1
1回答

一只斗牛犬

np.linspace(1, -1)1创建一个以 开头和结尾的数字数组-1。默认采取 50 步,因此每步的长度为-2/49。通常,步数是明确给出的,例如np.linspace(1, -1, 200)。标准情况下,起始值选择小于停止值,但两种方法都有效。np.arange(1, -1)创建一个从 1 开始的数组,增加一个步长(默认为 1),当值大于或等于停止值时结束。因此,在这种情况下,它会立即停止,创建一个空数组。np.arange(1, -1, -1)将采取 -1 的步长,并创建一个数组[1, 0],并在 之前停止-1。当这些数组像单个变量一样在表达式中使用时,Numpy 的魔力就开始了。这称为广播。这是一个示例图,显示了 的工作原理np.linspace。w仅针对 的 50 个给定值进行计算z。请注意,虽然z是从1to创建的-1,但默认图在右侧显示正值。另请注意,导入 matplotlib 的标准方法是 as plt,这使得其他人更容易遵循代码。from matplotlib import pyplot as pltimport numpy as npz = np.linspace(1, -1)w = np.sin(z * np.pi)plt.plot(z, w, '-bo')plt.xlabel('$z$')plt.ylabel(r'$w = \sin(z * pi)$')plt.show()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python