效果:
代碼:
import matplotlib.pyplot as plt
similarity = [0.651, 0.802, 0.86] # similarity of action
divergence = [0.21748494048186232, 0.012685957834863208, 0.0027021711873171966] # js diversity
labels = ['Random PPO', 'Replicating model', 'Baseline']
plt.rcParams['axes.labelsize'] = 16 # xy軸label的size
plt.rcParams['xtick.labelsize'] = 12 # x軸ticks的size
plt.rcParams['ytick.labelsize'] = 14 # y軸ticks的size
# plt.rcParams['legend.fontsize'] = 12 # 圖例的size
# 設置柱形的間隔
width = 0.3 # 柱形的寬度
x1_list = []
x2_list = []
for i in range(len(similarity)):
x1_list.append(i)
x2_list.append(i + width)
# 創建圖層
fig, ax1 = plt.subplots()
# 設置左側Y軸對應的figure
ax1.set_ylabel('Behavior Similarity')
ax1.set_ylim(0, 1)
ax1.bar(x1_list, similarity, width=width, color='lightseagreen', align='edge')
ax1.set_xticklabels(ax1.get_xticklabels()) # 設置共用的x軸
# 設置右側Y軸對應的figure
ax2 = ax1.twinx()
ax2.set_ylabel('Policy divergence')
ax2.set_ylim(0, 0.5)
ax2.bar(x2_list, divergence, width=width, color='tab:blue', align='edge', tick_label=labels)
plt.tight_layout()
plt.savefig("similarity.png")
plt.show()