zoukankan      html  css  js  c++  java
  • 机器学习——matplotlib

    pip install matplotlib

    matplotlib [mæt'plotlib] 是Python 2D绘图领域的基础套件,它让使用者将数据图形化,并提供多样化的输出格式

    给大家举个例子 用的实例化对象 

    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 柱状图 

    barh 条形图

    plot 折线图

    scatter 散点图

    scatter3D 3D散点图

    pie 3D饼图

    stackplot 面积图

    plt.title('给表的标题')

    plt.show() 绘制图表

    plt.legend() 绘制图例

  • 相关阅读:
    Python: 什么是*args和**kwargs
    python实现获取电脑IP、主机名、Mac地址
    python操作oracle完整教程
    python连接oracle数据库报错"DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "解决方案
    ORACLE_BASE、ORACLE_HOME有什么区别
    Java的JAVA_HOME、Path、CLASSPATH环境变量小结,可以借助这三个的配置去理解Oracle中的那几个环境变量的配置作用
    python连接Oracle的方式以及过程中遇到的问题
    hadoop学习笔记(六):hadoop全分布式集群的环境搭建
    CentOS7安装jdk教程
    在线用户列表
  • 原文地址:https://www.cnblogs.com/bo686/p/10807259.html
Copyright © 2011-2022 走看看