📜  Python中的 matplotlib.pyplot.step()函数

📅  最后修改于: 2022-05-13 01:54:53.988000             🧑  作者: Mango

Python中的 matplotlib.pyplot.step()函数

step()函数设计绘图,使其具有水平基线,数据点将通过垂直线连接到该基线。这种图用于分析 Y 轴值相对于 X 轴发生变化的点。这在离散分析中非常有用。步进绘图可以与任何其他绘图结合使用。步骤的出现也可以通过提供适当的参数值来格式化。该函数的参数如下表所示。

Parameters

Description                                                                                           

x

an 1-D array of values. 

y

an 1-D array of values.

fmt

Formatting strings that specify line color, marker type ,etc,.

data

Two iterables containing the label names for labelled data.

where

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 ,垂直线就会上升。为了更清楚,请查看带有突出显示部分的图像,如下所示。

x[i-1] 和 x[i] 范围内的水平线

  • 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 ”之间的差异。

x[i] 和 x[i+1] 范围内的水平线

  • 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[i-1] 和 x[i+1])/2

例如, x[0]1x[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()函数结合使用。