python 並列柱狀圖 雙y軸

效果:

在這裏插入圖片描述


代碼:

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()

參考鏈接

雙Y軸並列柱狀圖
柱狀圖的代碼原理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章