我有一个代码在一个范围内(即300)平均运行滚动窗口(30)
所以我有10个平均值,但他们用1-10对比蜱,而不是每个30的窗口间隔。
我能让它看起来正确的唯一方法是将其绘制(len(windowlength)),但x轴不对。
有没有办法手动分隔结果?
windows30 = (sliding_window(sequence, 30))
Overall_Mean = mean(sequence)
fig, (ax) = plt.subplots()
plt.subplots_adjust(left=0.07, bottom=0.08, right=0.96, top=0.92, wspace=0.20, hspace=0.23)
ax.set_ylabel('mean (%)')
ax.set_xlabel(' Length') # axis titles
ax.yaxis.grid(True, linestyle='-', which='major', color='lightgrey', alpha=0.5)
ax.plot(windows30, color='r', marker='o', markersize=3)
ax.plot([0, len(sequence)], [Overall_Mean, Overall_Mean], lw=0.75)
plt.show()
答案 0 :(得分:0)
根据我的理解,你有一个长度为300的列表,但内部只有10个值。如果是这种情况,您可以使用以下解决方案从None
列表中删除windows30
的其他值。
import numpy as np
import random
import matplotlib.pyplot as plt
# Generating the list of Nones and numbers
listofzeroes = [None] * 290
numbers = random.sample(range(50), 10)
numbers.extend(listofzeroes)
# Removing Nones from the list
numbers = [value for value in numbers if value is not None]
step = len(numbers)
x_values = np.linspace(0,300,step) # Generate x-values
plt.plot(x_values,numbers, color='red', marker='o')
这是一个有效的例子,相关代码是在第二条评论之后。
上述代码将独立于列表中Nones
所在的位置。我希望这能解决你的问题。