plt 棒狀圖(柱狀圖)減小柱子間距


背景

        畫圖的的時候發現兩哥柱子之間的間隔太大,不好看

在這里插入圖片描述

解決辦法

rects1 = plt.bar(x=xx, height=mean1, width=0.6, alpha=0.8,align='edge', color='blue')

        這個寬度是由 width 決定的 ,調整width 的大小即可,比如,我這兒的橫坐標是range(0,5),所以 width 設置成1那就把地方都占滿了,也就是柱子之間沒空隙
在這里插入圖片描述

        width 等於0.8的時候

在這里插入圖片描述

        當然,如果你設定的x是 range(0,10,2),那可能要 width =2.0 才是無空隙

        我最后設置的是 width 等於0.6,得到一個較好的效果
在這里插入圖片描述

附加

        在這個過程中涉及到重設圖窗的大小,主要用到如下代碼

params = {
    'figure.figsize': '5, 5'
}
plt.rcParams.update(params)

        目的是通過等比例放大(縮小)圖窗讓我的圖更好看,更切合,不突兀

完整代碼

mean1,mean2,mean3=avgSlove(X,y)

plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號
label_list = ['色調', '紅色均值', '相對紅色分量', '粗度','高頻能量']    # 橫坐標刻度顯示值
print(len(label_list))
xx = range(len(label_list))

'''調整圖窗大小'''
params = {
    'figure.figsize': '5, 5'
}
plt.rcParams.update(params)
'''調整圖窗大小'''

rects1 = plt.bar(x=xx, height=mean1, width=0.6, alpha=0.8,align='edge', color='blue')
plt.ylim(0, 1)     # y軸取值范圍
plt.ylabel("歸一化后的值")
plt.xticks([index + 0.3 for index in xx], label_list)   #這兒的0.3是配合寬度0.6來的,是他的一半,目的是讓刻度線在柱子的中間
plt.xlabel("特征",labelpad=8.5)
plt.show()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM