import matplotlib.pyplot as plt

设置数据,分别对应三个P值和两种均衡性情况的costs

costs_data = [[15791.4426, 15566.6707], [16703.4532, 16373.4197], [15722.7008, 15819.5234]]

客户效用数据

utility_p6 = [-56.5051,-68.9298] utility_p7 = [-56.0023,-63.5487] utility_p8 = [-48.82791,-52.4017]

紧凑性数据

compactness_p6 = [4700.1671,4677.9404] compactness_p7 = [4313.738,4307.662] compactness_p8 = [4001.1592,3997.655]

车辆数量数据

vehicles_p6 = [33,32] vehicles_p7 = [35, 34] vehicles_p8 = [33, 33]

设置颜色,分别对应考虑均衡性和不考虑均衡性的两种情况

colors = ['#1f77b4', '#ff7f0e']

设置斜体字体

font = {'family': 'serif', 'style': 'italic'}

绘制子图1:costs

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

for i, ax in enumerate(axes.flat): if i == 0: ax.bar([0.8, 1.2], costs_data[0], width=0.4, color=colors) ax.set_xticks([1]) ax.set_xticklabels(['P=6'], fontdict=font) elif i == 1: ax.bar([0.8, 1.2], costs_data[1], width=0.4, color=colors) ax.set_xticks([1]) ax.set_xticklabels(['P=7'], fontdict=font) elif i == 2: ax.bar([0.8, 1.2], costs_data[2], width=0.4, color=colors) ax.set_xticks([1]) ax.set_xticklabels(['P=8'], fontdict=font) elif i == 3: ax.axis('off') ax.legend(['Equilibrium', 'No Equilibrium'], loc='upper center', bbox_to_anchor=(0.5, 0.5)) plt.suptitle('Costs, Utility, Compactness, and Vehicles for Different P Values and Equilibrium Conditions', fontdict=font)

绘制子图2:utility

ax2 = plt.subplot(2, 2, 2) ax2.bar([0.8, 1.2], utility_p6, width=0.4, color=colors) ax2.bar([1.8, 2.2], utility_p7, width=0.4, color=colors) ax2.bar([2.8, 3.2], utility_p8, width=0.4, color=colors) ax2.set_xticks([1, 2, 3]) ax2.set_xticklabels(['P=6', 'P=7', 'P=8'], fontdict=font) ax2.set_ylabel('Utility', fontdict=font)

绘制子图3:compactness

ax3 = plt.subplot(2, 2, 3) ax3.bar([0.8, 1.2], compactness_p6, width=0.4, color=colors) ax3.bar([1.8, 2.2], compactness_p7, width=0.4, color=colors) ax3.bar([2.8, 3.2], compactness_p8, width=0.4, color=colors) ax3.set_xticks([1, 2, 3]) ax3.set_xticklabels(['P=6', 'P=7', 'P=8'], fontdict=font) ax3.set_ylabel('Compactness', fontdict=font)

绘制子图4:vehicles

ax4 = plt.subplot(2, 2, 4) ax4.bar([0.8, 1.2], vehicles_p6, width=0.4, color=colors) ax4.bar([1.8, 2.2], vehicles_p7, width=0.4, color=colors) ax4.bar([2.8, 3.2], vehicles_p8, width=0.4, color=colors) ax4.set_xticks([1, 2, 3]) ax4.set_xticklabels(['P=6', 'P=7', 'P=8'], fontdict=font) ax4.set_ylabel('Vehicles', fontdict=font)

调整子图之间的距离和间隔

plt.subplots_adjust(left=0.1, bottom=0.1, right=0.9, top=0.9, wspace=0.3, hspace=0.4)

显示图形

plt.show()

Comparison of Costs, Utility, Compactness, and Vehicles for Different P Values and Equilibrium Conditions

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

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