是的,代码中的横坐标是P值,需要进行修改才能反映考虑紧凑性和不考虑紧凑性两种情况的比较。可以将横坐标修改为['Without compactness', 'With compactness'],并将每种P值下的数据分别放在这两个类别下。修改后的代码如下:

import matplotlib.pyplot as plt

配送成本数据

costs_p6 = [100, 90] costs_p7 = [110, 95] costs_p8 = [120, 100]

客户效用数据

utility_p6 = [0.9, 0.85] utility_p7 = [0.92, 0.87] utility_p8 = [0.94, 0.89]

紧凑性数据

compactness_p6 = [0.75, 0.7] compactness_p7 = [0.77, 0.72] compactness_p8 = [0.79, 0.74]

车辆数量数据

vehicles_p6 = [5, 4] vehicles_p7 = [6, 5] vehicles_p8 = [7, 6]

绘制子图

fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(10,8))

配送成本子图

axs[0, 0].plot(['Without compactness', 'With compactness'], costs_p6, marker='o', label='P=6') axs[0, 0].plot(['Without compactness', 'With compactness'], costs_p7, marker='s', label='P=7') axs[0, 0].plot(['Without compactness', 'With compactness'], costs_p8, marker='^', label='P=8') axs[0, 0].set_xlabel('Compactness') axs[0, 0].set_ylabel('Delivery cost') axs[0, 0].legend()

客户效用子图

axs[0, 1].plot(['Without compactness', 'With compactness'], utility_p6, marker='o', label='P=6') axs[0, 1].plot(['Without compactness', 'With compactness'], utility_p7, marker='s', label='P=7') axs[0, 1].plot(['Without compactness', 'With compactness'], utility_p8, marker='^', label='P=8') axs[0, 1].set_xlabel('Compactness') axs[0, 1].set_ylabel('Customer utility') axs[0, 1].legend()

紧凑性子图

axs[1, 0].plot(['Without compactness', 'With compactness'], compactness_p6, marker='o', label='P=6') axs[1, 0].plot(['Without compactness', 'With compactness'], compactness_p7, marker='s', label='P=7') axs[1, 0].plot(['Without compactness', 'With compactness'], compactness_p8, marker='^', label='P=8') axs[1, 0].set_xlabel('Compactness') axs[1, 0].set_ylabel('Compactness') axs[1, 0].legend()

车辆数量子图

axs[1, 1].plot(['Without compactness', 'With compactness'], vehicles_p6, marker='o', label='P=6') axs[1, 1].plot(['Without compactness', 'With compactness'], vehicles_p7, marker='s', label='P=7') axs[1, 1].plot(['Without compactness', 'With compactness'], vehicles_p8, marker='^', label='P=8') axs[1, 1].set_xlabel('Compactness') axs[1, 1].set_ylabel('Number of vehicles') axs[1, 1].legend()

标题和标签

fig.suptitle('Comparison of objectives for different P values') fig.tight_layout(rect=[0, 0.03, 1, 0.95])

plt.show(

import matplotlibpyplot as plt# 配送成本数据costs_p6 = 100 90 80costs_p7 = 110 95 85costs_p8 = 120 100 90# 客户效用数据utility_p6 = 09 085 08utility_p7 = 092 087 082utility_p8 = 094 089 084# 紧凑性数据compactness_p6 =

原文地址: http://www.cveoy.top/t/topic/fjMR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录