import matplotlib.pyplot as plt
import numpy as np
categories = ['Sup', 'Semi', 'PSSS','DDLR+PSSS']
data_1_vein = {
'x1': [64.93, 67.94, 71.79,73.45],
'x2': [67.27, 71.86, 74.29,76.24],
'x3': [69.79,72.98,75.63,77.51]
}
data_2_vein = {
'x1': [39.71, 45.73, 51.34,52.95],
'x2': [42.75,48.65, 55.33,55.97],
'x3': [43.74, 50.50, 55.37,57.92]
}
data_3_vein = {
'x1': [23.56, 25.73, 36.73,38.39],
'x2': [25.37, 30.45, 38.14,39.81],
'x3': [25.42, 32.54, 36.94,40.52]
}
data_mIoU = {
'x1': [42.73, 46.47,53.29,54.93],
'x2': [45.13, 50.32, 55.92,57.34],
'x3': [46.32, 50.01, 55.98,58.65]
}
bar_width =0.2
x = np.arange(len(categories))
fig, axs = plt.subplots(2, 2, figsize=(12, 4))
colors = ['blue', 'green','red']
for i, (key, values) in enumerate(data_1_vein.items()):
axs[0, 0].bar(x + (i - 1) * bar_width, values, bar_width, label=key, color=colors[i])
axs[0, 0].set_title('(a) 1°vein',y=-0.4, fontsize=12)
axs[0, 0].set_xticks(x + bar_width-0.2 )
axs[0, 0].set_xticklabels(categories)
axs[0, 0].set_ylim(60, 80)
axs[0, 0].set_yticks(np.arange(60, 81, 5))
axs[0, 0].legend()
for i, (key, values) in enumerate(data_2_vein.items()):
axs[0, 1].bar(x + (i - 1) * bar_width, values, bar_width, label=key, color=colors[i])
axs[0, 1].set_title('(b) 2°vein',y=-0.4, fontsize=12)
axs[0, 1].set_xticks(x + bar_width-0.2)
axs[0, 1].set_xticklabels(categories)
axs[0, 1].set_ylim(35, 60)
axs[0, 1].set_yticks(np.arange(35, 61, 5))
axs[0, 1].legend()
for i, (key, values) in enumerate(data_3_vein.items()):
axs[1, 0].bar(x + (i - 1) * bar_width, values, bar_width, label=key, color=colors[i])
axs[1, 0].set_title('(c) 3°vein',y=-0.4, fontsize=12)
axs[1, 0].set_xticks(x + bar_width -0.2)
axs[1, 0].set_xticklabels(categories)
axs[1, 0].set_ylim(20, 45)
axs[1, 0].set_yticks(np.arange(20, 46, 5))
axs[1, 0].legend()
for i, (key, values) in enumerate(data_mIoU.items()):
axs[1, 1].bar(x + (i - 1) * bar_width, values, bar_width, label=key, color=colors[i])
axs[1, 1].set_title('(d) mIoU',y=-0.4, fontsize=12)
axs[1, 1].set_xticks(x + bar_width -0.2)
axs[1, 1].set_xticklabels(categories)
axs[1, 1].set_ylim(40, 60)
axs[1, 1].set_yticks(np.arange(40, 61, 5))
axs[1, 1].legend()
plt.tight_layout()
plt.savefig('bar_chart.png', dpi=300)