機器學習——matplotlib

pip install matplotlibapp

matplotlib [mæt'plotlib] 是Python 2D繪圖領域的基礎套件,它讓使用者將數據圖形化,並提供多樣化的輸出格式dom

 

 

給你們舉個例子 用的實例化對象 ide

 

import matplotlib.pyplot as plt
#導入3d模塊
from mpl_toolkits.mplot3d.axes3d import Axes3D
import numpy as np
import pandas as pd

 

 

 

#創建一個測試類

 

class TestPlot(object):
    #初始化方法
    def __init__(self,plt):
        self.plt = plt
    
    
    #配置中文字體
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['font.family'] = 'sans-serif'

 

 

 

#柱狀圖測試

    def test_zhu(self):
        plt = self.plt
        #定義數據
        GDP = [12404.1,13908.57,9350,8000]
        #填充數據
        plt.bar(['北京','天津','上海','重慶'],GDP,color="green",alpha=0.2)
        #填寫標籤
        plt.ylabel('生產總值')
        plt.title('四大直轄市GDP比對')
        #刻度範圍
        plt.ylim([5000,15000])
        #繪製
        plt.show()

 

 

#繪製條形圖
    def test_tiao(self):
        plt = self.plt
        #定義數據
        price = [40,30,60,50]
        #填充數據
        plt.barh(range(4),price,align='center',color="blue",alpha=0.3)
        #設置標籤
        plt.xlabel('價格')
        #編輯商品
        plt.yticks(range(4),['三國','水滸','西遊','紅樓'])
        #設置標題
        plt.title('商品價格表')
        plt.show()

 

 

 #折線圖方法
    def test_line(self):
        plt = self.plt
        #定義X軸數據
        x = ['2019-5-1','2019-5-2','2019-5-3','2019-5-4']
        #定義Y軸數據
        y1 = ['30℃','25℃','15℃','25℃']
        y2 = [30,50,60,40]
        #填充數據
        plt.plot(x,y1,label = '溫度')
        plt.plot(x,y2,label = '溼度')
        #設置圖例
        plt.legend()
        #繪製
        plt.show()

 

 

#繪製散點圖
    def test_sandian(self):
        plt = self.plt
        #定義數據
        x = list(range(0,101))
        y = [value * np.random.rand() for value in x]
        #填充數據
        plt.scatter(x,y,s=30,c = 'red')
        #繪製
        plt.show()

 

 

#定義3D散點
    def test_3d(self):
        plt = self.plt
        #定義數據
        x = np.random.randint(0,20,size=20)
        y = np.random.randint(0,20,size=20)
        z = np.random.randint(0,20,size=20)
#         a = np.random.randint(0,20,size=20)
#         b = np.random.randint(0,20,size=20)
#         c = np.random.randint(0,20,size=20)
#         d = np.random.randint(0,20,size=20)
#         e = np.random.randint(0,20,size=20)
        #建立二維對象
        fig = plt.figure()
        #強轉
        axes3d = Axes3D(fig)
        #填充數據
        axes3d.scatter3D(x,y,z)
        #繪製
        plt.show()

 

 

 

#定義餅圖方法
    def test_bing(self):
        plt = self.plt
        #定義數據
        beijing = [10,18,40,65]
        #定義標籤
        label = ['2-3年','3年','5年','8年以上']
        #顏色
        color = ['red','blue','green','pink']
        #作好容器
        indic = []
        for index,item in enumerate(beijing):
            #判斷
            if item == max(beijing):
                indic.append(0.1)
            elif index == 1:
                indic.append(0.1)
            else:
                indic.append(0.1)
                
        #填充數據    autopct="%1.1f%%"以小數的形式展現
        plt.pie(beijing,labels=label,colors=color,startangle=160,shadow=True,explode=tuple(indic),autopct="%1.1f%%")
        
        #標題
        plt.title("3D餅圖突出展現工齡佔比")
        #繪製
        plt.show()

 

 

#定義面積圖方法
    def test_mian(self):
        plt = self.plt
        #定義數據
        date = ['2019-5-1','2019-5-2','2019-5-3','2019-5-4']
        #收入
        earn = [156,356,156,70]
        #定義支出
        pay = [[10,30,5,20],[12,20,10,20],[10,15,30,20],[10,20,30,5]]
        #填充數據
        plt.stackplot(date,earn,pay,colors=['green','pink','orange','blue'])
        #生成圖例
        plt.plot([],[],color='red',label="收入")
        plt.plot([],[],color='blue',label="早飯")
        plt.plot([],[],color='green',label="中午餐")
        plt.plot([],[],color='pink',label="晚飯")
        plt.legend()
        plt.title('四天支出收入')
        plt.show()

 

 

 

 

if __name__ == "__main__":

 

    #實例化一個對象
    testplot = TestPlot(plt)
    #調用方法
     #折線
     testplot.test_line()
     #散點
     testplot.test_sandian()
     #3D
     testplot.test_3d()
     #條形
     testplot.test_tiao()
     #柱狀圖
     testplot.test_zhu()
     #3D餅圖
     testplot.test_bing()
    #面積圖
    testplot.test_mian()

 

 

 

 

總結:字體

bar 柱狀圖 spa

barh 條形圖3d

plot 折線圖對象

scatter 散點圖ip

scatter3D 3D散點圖ci

pie 3D餅圖

stackplot 面積圖

 

plt.title('給表的標題')

plt.show() 繪製圖表

plt.legend()繪製圖例

相關文章
相關標籤/搜索