python 灰色关联度及其可视化代码
时间: 2023-09-18 10:07:15 浏览: 122
灰色关联度
以下是Python中灰色关联度及其可视化的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 灰色关联度计算函数
def gray_relation(x, y):
x_mean = np.mean(x)
y_mean = np.mean(y)
delta_x = np.abs(x - x_mean)
delta_y = np.abs(y - y_mean)
c = 0.5
gx = np.min(delta_x) / (np.max(delta_x) + c)
gy = np.min(delta_y) / (np.max(delta_y) + c)
return gx, gy
# 数据准备
x = np.array([1, 2, 3, 4, 5, 6])
y1 = np.array([10, 8, 12, 14, 9, 10])
y2 = np.array([8, 6, 10, 12, 8, 7])
y3 = np.array([7, 9, 11, 13, 10, 12])
# 计算灰色关联度
gx1, gy1 = gray_relation(x, y1)
gx2, gy2 = gray_relation(x, y2)
gx3, gy3 = gray_relation(x, y3)
# 可视化灰色关联度
plt.plot(x, y1, label='y1')
plt.plot(x, y2, label='y2')
plt.plot(x, y3, label='y3')
plt.legend()
plt.twinx()
plt.plot(x, [gx1, gx2, gx3], 'ro-', label='gx')
plt.plot(x, [gy1, gy2, gy3], 'bo-', label='gy')
plt.legend()
plt.show()
```
代码说明:
首先定义了一个灰色关联度计算函数`gray_relation`,该函数接受两个数组参数`x`和`y`,计算出它们的灰色关联度`gx`和`gy`,并返回这两个值。
然后准备了三组数据`y1`、`y2`和`y3`,以及对应的自变量`x`。
接着,分别计算了这三组数据与自变量`x`的灰色关联度,并将结果保存在`gx1`、`gy1`、`gx2`、`gy2`、`gx3`和`gy3`中。
最后,使用Matplotlib库将三组数据分别绘制在同一个坐标系中,并将灰色关联度绘制在另一个坐标系中。在绘制灰色关联度时,使用`twinx()`函数创建一个新的y轴,使得灰色关联度可以与原始数据在同一个图中表示。绘图完成后使用`show()`函数显示图形。
运行上述代码,将得到一个包含三组数据和其对应灰色关联度的图形。
阅读全文