''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' >>文件: 水平直方圖.py >>作者: liu yang >>郵箱: liuyang0001@outlook.com >>博客: www.cnblogs.com/liu66blog ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' #!/usr/bin/env python # -*- coding: utf-8 -*- import sys, os import matplotlib import matplotlib.pyplot as plt # 定義要使用的字體,防止出現中文亂碼 font=matplotlib.font_manager.FontProperties(fname=r"C:\Windows\Fonts\Deng.ttf") # Horizontal histogram 水平直方圖 def horizontal_histogram(): # 先生成一個畫布 fig = plt.figure() # 生成數據 x1 = [x for x in range(1, 9)] y1 = [n * 2 for n in range(1, 9)] x2 = [x for x in range(1, 9)] y2 = [x ** 2 for x in x2] # 畫水平直方圖 l2=plt.barh(x2,y2,color='b') l1=plt.barh(x1,y1,color='g') # 設置 plt.title("水平直方圖",fontproperties=font) # 設置x,y軸標簽 plt.xlabel('數量',fontproperties=font) plt.ylabel('產品',fontproperties=font) # 設置刻度 plt.xticks([x for x in range(0,80,4)]) plt.yticks([y for y in range(0,9,1)]) # 設置注解狂圖示 plt.legend(handles = [l1, l2,], labels = ['去年', '今年'], loc = 'best',prop=font) for x1,x2, y1, y2 in zip(x1,x2, y1, y2): # 添加文本時添加偏移量使其顯示更加美觀 plt.text(y1+1.5 , x1-0.25, '%.0f' % y1, ha='center', va='bottom') plt.text(y2+1.5 , x2-0.25, '%.0f' % y2, ha='center', va='bottom') # 顯示 plt.show() if __name__ == '__main__': histogram = horizontal_histogram()