1. 程式人生 > 實用技巧 >python實現多條柱狀圖對比輸出?

python實現多條柱狀圖對比輸出?


import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"]#輸出影象的標題可以為中文正常輸出
plt.rcParams["axes.unicode_minus"]=False #可以正常輸出圖線裡的負號
name_list = ["評分1","評分2'","評分3", "評分4"]
num_list = [0.912,0.914,0.957,0.851]
num_list1 = [0.976, 0.914,0.916,0.734]

x = list(range(len(num_list)))
total_width, n = 0.6, 3
width = total_width / n
plt.bar(x, num_list, width=width, label="LogisticRegression", fc = "b")

plt.text(x[0],num_list[0],"91.2%",ha='center',va='bottom',fontsize=10)
plt.text(x[1],num_list[1],"91.4%",ha='center',va='bottom',fontsize=10)
plt.text(x[2],num_list[2],"96.7%",ha='center',va='bottom',fontsize=10)
plt.text(x[3],num_list[3],"85.1%",ha='center',va='bottom',fontsize=10)

for i in range(len(x)):
x[i] = x[i] + width
plt.bar(x, num_list1, width=width, label="RandomForest", tick_label = name_list, fc ="r")
plt.xlabel("不同評分目標型別",fontsize=12)
plt.ylabel("不同模型的準確率大小",fontsize=12)
plt.title("不同評分結果的機器學習演算法模型精度表現",fontsize=15)

plt.text(x[0],num_list1[0],"97.6%",ha='center',va='bottom',fontsize=10)
plt.text(x[1],num_list1[1],"91.4%",ha='center',va='bottom',fontsize=10)
plt.text(x[2],num_list1[2],"91.6%",ha='center',va='bottom',fontsize=10)
plt.text(x[3],num_list1[3],"73.4%",ha='center',va='bottom',fontsize=10)

plt.legend(fontsize=9)
plt.show()


import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"]#輸出影象的標題可以為中文正常輸出
plt.rcParams["axes.unicode_minus"]=False #可以正常輸出圖線裡的負號
name_list = ["評分1","評分2'","評分3", "評分4"]
num_list = [0.912,0.914,0.957,0.851]
num_list1 = [0.976, 0.914,0.90,0.734]
x = list(range(len(num_list)))
total_width, n = 0.6, 2
width = total_width / n
plt.bar(x, num_list, width=width, label="LogisticRegression", fc = "b")
for a,b in zip(x,num_list): #柱子上的數字顯示
plt.text(a,b,'%.3f'%b,ha='center',va='bottom',fontsize=10);
for i in range(len(x)):
x[i] = x[i] + width
plt.bar(x, num_list1, width=width, label="RandomForest", tick_label = name_list, fc ="r")
plt.xlabel("不同評分目標型別",fontsize=10)
plt.ylabel("不同模型的準確率大小",fontsize=10)
plt.title("不同評分結果的機器學習演算法模型精度表現",fontsize=15)
for a,b in zip(x,num_list1): #柱子上的數字顯示
plt.text(a,b,'%.3f'%b,ha='center',va='bottom',fontsize=10);
plt.legend(fontsize=8)
plt.show()