# _*_ coding: gbk _*_ # @Author: Wonde # bar 直方圖 import matplotlib.pyplot as plt # 繪圖 from matplotlib.font_manager import FontProperties # 管理字體 font = FontProperties(fname=r'STLITI.TTF') # 設置字體 設置路徑即可 plt.style.use('ggplot') # 樣式可選,默認ggplot和classic # print(plt.style.available) #查看可以使用的背景樣式 classes = ['class1', 'class2', 'class3', 'class4'] # x軸數據 studentnum = [11, 21, 33, 25] # y軸數據 classes_index = range(len(classes)) # 傳一個可迭代對象range是一個可迭代對象,目的是為了讓非數字的X軸均勻分布,通過索引實現 #畫布設計 fig = plt.figure() #實例化一個對象 ax1 = fig.add_subplot(1, 1, 1) # 將一個畫布分為幾(1)行(1)列以及選定第(1)張add_subplot(1, 1, 1) ax1.bar(classes_index, studentnum) # 設置一些參數 # def bar(self, x, height, width=0.8, bottom=None, *, align="center",**kwargs): # 設置刻度值的顯示位置 ax1.xaxis.set_ticks_position('bottom') # 刻度 x的刻度在底部,y的刻度在左邊 ax1.yaxis.set_ticks_position('left') #設置X軸的刻度和數據,X軸因為不是具體數據,故用他所在的數組位置進行等差取值。 plt.xticks(classes_index, classes, rotation=0, fontsize=12, FontProperties=font) # 設置x和y軸以及標題欄的名字 plt.xlabel('班級', FontProperties=font, Fontsize=15) plt.ylabel('學生人數', FontProperties=font, Fontsize=15) plt.title('班級----學生人數', FontProperties=font, Fontsize=19) plt.show()
****************************************************************************************************************************************************
# _*_ coding: gbk _*_ # @Author: Wonde # bar 直方圖 import matplotlib.pyplot as plt # 繪圖 from matplotlib.font_manager import FontProperties # 管理字體 font = FontProperties(fname=r'STLITI.TTF') # 設置字體 設置路徑即可 plt.style.use('ggplot') # 樣式可選,默認ggplot和classic # print(plt.style.available) #查看可以使用的背景樣式 classes = ['class1', 'class2', 'class3', 'class4'] # x軸數據 studentnum = [11, 21, 33, 25] # y軸數據 classes_index = range(len(classes)) # 傳一個可迭代對象range是一個可迭代對象 #畫布設計 fig = plt.figure() #實例化一個對象 ax1 = fig.add_subplot(1, 1, 1) # 將一個畫布分為幾(1)行(1)列以及選定第(1)張add_subplot(1, 1, 1) ax1.barh( classes_index, studentnum) # 設置一些參數 # def barh(self, y, width, height=0.8, left=None, *, align="center",**kwargs): # 設置刻度值的顯示位置 ax1.xaxis.set_ticks_position('bottom') # 刻度 x的刻度在底部,y的刻度在左邊 ax1.yaxis.set_ticks_position('left') # yticks設置y軸的刻度值 和數據,此時Y軸是班級,不是一個具體數值,所以需要用索引來做均分間隔。 plt.yticks(classes_index, classes, rotation=0, fontsize=12, FontProperties=font) # 設置x和y軸以及標題欄的名字 plt.xlabel('學生人數', FontProperties=font, Fontsize=15) plt.ylabel('班級', FontProperties=font, Fontsize=15) plt.title('班級----學生人數', FontProperties=font, Fontsize=19) plt.show()
重在理解!!!
高斯分布,又稱為正態分布。秘籍的直方圖可以繪制出高斯分布圖
# _*_ coding: gbk _*_ # @Author: Wonder import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font = FontProperties(fname='simhei.ttf') plt.style.use('ggplot') num1, num2, sigama = 20, 50, 10 # 構造符合均值為20的正態分布,以及均值為50的正態分布。 x1 = num1 + sigama * np.random.randn(10000) # 10000為構造隨機數的個數 x2 = num2 + sigama * np.random.randn(10000) fig = plt.figure() # 初始化畫板 ax1 = fig.add_subplot(1, 2, 1) ax1.hist(x1, bins=50, color='yellow') # bins=50表示分成50份,即會有50個直方圖組成正態分布大圖 ax2 = fig.add_subplot(122) ax2.hist(x2, bins=50, color='green') fig.suptitle('兩個圖在一起', fontproperties=font, fontweight='bold', fontsize=15) # fontweight為字體粗細,bold為粗體,fontproperties字體屬性 ax1.set_title('均值為20的正態分布圖', fontproperties=font) ax2.set_title('均值為50的正態分布圖', fontproperties=font) plt.show()