在python中绘制x轴上的多余点

时间:2018-02-04 05:11:30

标签: python numpy matplotlib plot frequency

我希望绘制240 hz(x轴)捕获的数据与60hz(y轴)捕获的数据。 x轴数据是y轴的4倍,我希望x轴上的4个点在y轴上绘制1个点,因此结果图看起来像一个步骤。 我的清单:Y轴:np.arange(1, 40) # numpy  X轴:public class Car{ private int numOfDoors; public Car(int nod){ numOfDoors = nod; } }

如何在图表中将4个多余点加入一个?

1 个答案:

答案 0 :(得分:2)

您可以使用numpy.repeat根据需要多次复制系列中的每个数据点。对于您的具体示例:

from matplotlib import pyplot as plt
import numpy as np

fig, ax = plt.subplots()

X = np.arange(1,41)
Y = np.array([0.0, 0.001, 0.003, 0.2, 0.4, 0.5, 0.7, 0.88, 0.9, 1.0])
Y2 = np.repeat(Y,4)
print(Y2)

ax.plot(X,Y2)

plt.show()

Y2提供以下输出:

[0.    0.    0.    0.    0.001 0.001 0.001 0.001 0.003 0.003 0.003 0.003
 0.2   0.2   0.2   0.2   0.4   0.4   0.4   0.4   0.5   0.5   0.5   0.5
 0.7   0.7   0.7   0.7   0.88  0.88  0.88  0.88  0.9   0.9   0.9   0.9
 1.    1.    1.    1.   ]

以下图:

adding points to Y

您也可以使用

执行相反的操作
X2 = X[::4]
ax.plot(X2, Y)

在这种情况下你得到这个数字:

removing points from X