交叉率 变异率 HV S 01 001 0018 58695 02 001 0015 38169 04 001 0012 16056 05 001 0017 64346 06 001 0018 44073 07 001 0012 44204 08 001 0015 31764 09 001 0016 37409 01 002 0023 131481 02 002 0017 67565 03 002
把交叉率和变异率作为x,y轴,HV作为颜色深度绘制成等高线图,代码如下:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import griddata
# 读取数据
data = pd.read_csv('data.csv')
# 绘图
fig, ax = plt.subplots()
ax.set_xlabel('Crossover rate')
ax.set_ylabel('Mutation rate')
ax.set_xlim(0.1, 0.4)
ax.set_ylim(0.01, 0.04)
ax.set_xticks(np.arange(0.1, 0.5, 0.1))
ax.set_yticks(np.arange(0.01, 0.05, 0.01))
# 插值
xi = np.linspace(0.1, 0.4, 100)
yi = np.linspace(0.01, 0.04, 100)
zi = griddata((data['交叉率'], data['变异率']), data['HV'], (xi[None,:], yi[:,None]), method='linear')
# 绘制等高线图
plt.contourf(xi, yi, zi, levels=100, cmap='coolwarm')
plt.colorbar()
plt.show()
得到的图像如下:
从图中可以看出,当交叉率为0.2,变异率为0.03时,HV值最高,达到了约0.023。在这个区域内,随着交叉率的增加,HV值先增加后减小;随着变异率的增加,HV值先增加后趋于稳定。
原文地址: https://www.cveoy.top/t/topic/bA39 著作权归作者所有。请勿转载和采集!