Python Matplotlib 算法时间复杂度可视化:曲线拟合
import matplotlib.pyplot as plt
import numpy as np
# 假设 N、times_brute_force、times_backtrack、times_branch_bound 已经定义
# 使用提供的 N 和时间数据绘制算法的执行时间
plt.plot(N, times_brute_force, label='Brute Force')
plt.plot(N, times_backtrack, label='Backtrack')
plt.plot(N, times_branch_bound, label='Branch and Bound')
# 使用 np.polyfit() 函数将多项式曲线拟合到数据点
curve_brute_force = np.polyfit(N, times_brute_force, 3)
curve_backtrack = np.polyfit(N, times_backtrack, 3)
curve_branch_bound = np.polyfit(N, times_branch_bound, 3)
# 使用 np.linspace() 生成用于绘制平滑曲线的 N 值范围
smooth_N = np.linspace(min(N), max(N), 100)
# 使用 np.polyval() 函数基于拟合的曲线系数生成平滑曲线
smooth_times_brute_force = np.polyval(curve_brute_force, smooth_N)
smooth_times_backtrack = np.polyval(curve_backtrack, smooth_N)
smooth_times_branch_bound = np.polyval(curve_branch_bound, smooth_N)
# 绘制平滑曲线
plt.plot(smooth_N, smooth_times_brute_force, label='Brute Force (Curve)')
plt.plot(smooth_N, smooth_times_backtrack, label='Backtrack (Curve)')
plt.plot(smooth_N, smooth_times_branch_bound, label='Branch and Bound (Curve)')
# 添加标签和图例以提高可读性
plt.xlabel('N')
plt.ylabel('Time (s)')
plt.legend()
# 显示图表
plt.show()
原文地址: https://www.cveoy.top/t/topic/fwzB 著作权归作者所有。请勿转载和采集!