python绘制EWMA控制图
时间: 2023-08-16 21:12:26 浏览: 357
要绘制EWMA(Exponentially Weighted Moving Average)控制图,你可以使用Python中的matplotlib库来完成。下面是一个简单的示例代码来绘制EWMA控制图:
```python
import numpy as np
import matplotlib.pyplot as plt
def ewma(data, alpha):
# 计算EWMA值
ewma_values = [data[0]]
for i in range(1, len(data)):
ewma = alpha * data[i] + (1-alpha) * ewma_values[i-1]
ewma_values.append(ewma)
return ewma_values
def control_chart(data, alpha):
# 计算EWMA控制线
ewma_values = ewma(data, alpha)
ucl = np.mean(data) + 3 * np.std(data)
lcl = np.mean(data) - 3 * np.std(data)
# 绘制数据和控制线
plt.plot(data, label='Data')
plt.plot(ewma_values, label='EWMA')
plt.axhline(ucl, color='r', linestyle='--', label='UCL')
plt.axhline(lcl, color='r', linestyle='--', label='LCL')
plt.legend()
plt.xlabel('Sample')
plt.ylabel('Value')
plt.title('EWMA Control Chart')
plt.show()
# 示例数据
data = [10, 12, 14, 8, 10, 9, 11, 12, 13, 15, 8, 10, 12, 14]
alpha = 0.2
# 绘制EWMA控制图
control_chart(data, alpha)
```
在这个示例中,`ewma`函数计算了给定数据的EWMA值,`control_chart`函数计算了EWMA控制线,并使用matplotlib绘制了数据、EWMA值和控制线。你可以根据自己的数据和需要调整alpha值来绘制不同的EWMA控制图。
阅读全文