# _*_ 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()

