Python中的 matplotlib.pyplot.step()函数
step()函数设计绘图,使其具有水平基线,数据点将通过垂直线连接到该基线。这种图用于分析 Y 轴值相对于 X 轴发生变化的点。这在离散分析中非常有用。步进绘图可以与任何其他绘图结合使用。步骤的出现也可以通过提供适当的参数值来格式化。该函数的参数如下表所示。 Parameters Description x y fmt data wherean 1-D array of values. an 1-D array of values. Formatting strings that specify line color, marker type ,etc,. Two iterables containing the label names for labelled data. To decide the position of the vertical line. (values : pre|post|mid)
注意:参数'fmt'、'data'、'where'是可选的。
'哪里' 参数
where 参数用于表示垂直线应将数据点连接到水平基线的位置。它决定将步骤(如可视化)放置在何处。更清楚地说,这个参数决定了 Y 值应该在哪里不断地画一条水平线。它可以取下面通过示例解释的三个值中的任何一个。
首先,考虑要绘制的两个数组:
x = [1,3,4,5,7]
y = [1,9,16,25,49]
数组x包含一些整数,数组y包含x中相应索引中的数字的平方。如果在没有任何阶跃函数的情况下简单地绘制这些值,则会在图中绘制一条直线,如下所示。
Python3
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 3, 4, 5, 7])
y = np.array([1, 9, 16, 25, 49])
plt.plot(x, y)
plt.show()
Python3
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 3, 4, 5, 7])
y = np.array([1, 9, 16, 25, 49])
plt.step(x, y, 'g^', where='pre')
plt.show()
Python3
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 3, 4, 5, 7])
y = np.array([1, 9, 16, 25, 49])
plt.step(x, y, 'r*', where='post')
plt.show()
Python3
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 3, 4, 5, 7])
y = np.array([1, 9, 16, 25, 49])
plt.step(x, y, 'cs', where='mid')
plt.xlim(1, 9)
plt.show()
Python3
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 3, 4, 5, 7])
y = np.array([1, 9, 16, 25, 49])
plt.step(x, y, 'ys', where='mid')
plt.xlim(1, 9)
plt.bar(x, y)
plt.show()
输出:
pre : Y 值在数据点的左侧保持不变。例如,值y[i]在x[i-1]和x[i]之间保持不变。下面给出了与上面绘制的相同步骤的图。在下面的代码中, 'g^'表示线条颜色为绿色,标记应为向上的三角形。
Python3
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 3, 4, 5, 7])
y = np.array([1, 9, 16, 25, 49])
plt.step(x, y, 'g^', where='pre')
plt.show()
输出:
在上图中,您可以看到由绿色小三角形标记的数据点左侧的水平线。例如, x[0]为1 ,其对应的 y 值为1 。下一个值x[1]是3并且 y 值是9 。现在您可以从1看到9中的一条恒定线。一旦在 X 轴上到达数据点3 ,垂直线就会上升。为了更清楚,请查看带有突出显示部分的图像,如下所示。
- post: Y 值在数据点右侧保持不变。例如,值 y[i] 在 x[i] 和 x[i+1] 之间保持不变。下面给出了与上面绘制的相同步骤的图。在下面的代码中,“r*”表示线条颜色为红色,标记应为星号(“ * ”)。
Python3
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 3, 4, 5, 7])
y = np.array([1, 9, 16, 25, 49])
plt.step(x, y, 'r*', where='post')
plt.show()
输出:
查看突出显示的部分以查看值“ pre ”和“ post ”之间的差异。
- mid:垂直线以 (x[i-1] 和 x[i+1])/2 的值向上发射。下面给出了与上面绘制的相同步骤的图。在下面的代码中,“cs”表示线条颜色为红色,标记应为正方形。
Python3
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 3, 4, 5, 7])
y = np.array([1, 9, 16, 25, 49])
plt.step(x, y, 'cs', where='mid')
plt.xlim(1, 9)
plt.show()
输出:
为了更好地理解,请看下图。
例如, x[0]是1 , x[1]是3 ,中间值是2 。以类似的方式,对于其他值,中间值也被计算出来,垂直线在那里升高。
step() 也可以与其他绘图结合使用。查看下面的示例,了解上面使用的相同数据点。
Python3
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 3, 4, 5, 7])
y = np.array([1, 9, 16, 25, 49])
plt.step(x, y, 'ys', where='mid')
plt.xlim(1, 9)
plt.bar(x, y)
plt.show()
输出:
同样,任何绘图类型都可以与 step()函数结合使用。