zoukankan      html  css  js  c++  java
  • 机器学习入门--------matplotlib学习

    学习目标

    目标

    • 了解什么是matplotlib
    • 为什么要学习matplotlib
    • matplotlib简单图形的绘制

    1、什么是matplotlib

    • matplotlib是专门用于开发2D图表(包括3D图表)
    • 以渐进、交互式方式实现数据可视化

    2、matplotlib作用

    可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。

    • 能将数据进行可视化,更直观的呈现
    • 使数据更加客观、更具说服力
      例如下面两个图为数字展示和图形展示:

    3、通过matplotlib画图(实现一个简单的折线图)

    通过matplotlib.pytplotll来画图,类似于matlab的画图函数。

    import matplotlib.pyplot as plt
    
    ##绘制画布
    plt.figure(figsize=(20,8),dpi=100)
    ##绘制折线图
    x = [1,2,3,4,5,6,7]
    y = [10,15,17,20,19,17,16]
    plt.plot(x,y)
    ##显示图像
    plt.show()
    

    4、实现基础图形绘图功能

    画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度

    效果:

    实现基本功能

    import matplotlib.pyplot as plt
    import random
    from pylab import mpl
    # 设置显示中文字体
    mpl.rcParams["font.sans-serif"] = ["SimHei"]
    # 设置正常显示符号
    mpl.rcParams["axes.unicode_minus"] = False
    ##1、准备数据
    x = range(60)
    y = [random.uniform(15,18) for i in x]
    ##2、绘制画布
    plt.figure(figsize=(20,8),dpi=100)
    ##3、绘制图像
    plt.plot(x,y)
    ##4、显示
    plt.show()
    

    实现其它功能

    import matplotlib.pyplot as plt
    import random
    from pylab import mpl
    # 设置显示中文字体
    mpl.rcParams["font.sans-serif"] = ["SimHei"]
    # 设置正常显示符号
    mpl.rcParams["axes.unicode_minus"] = False
    #1、准备数据
    x = range(60)
    y_temp = [random.uniform(15,18) for i in x]
    ##2、绘制画布
    plt.figure(figsize=(20,8),dpi=100)
    ##3、绘制图像
    plt.plot(x,y_temp)
    
    #3.1添加x、y轴刻度
    ##构造x轴刻度标签
    x_ticks_lable = ["11点{0}分".format(i) for i in x]
    ##构造y轴刻度标签
    y_ticks = range(40)
    # 修改x,y轴坐标的刻度显示
    plt.xticks(x[::5],x_ticks_lable[::5])
    plt.yticks(y_ticks[::5])
    #添加网格显示 True 显示网格线 linestyle="--" 线条格式,alpha=0.5 透明度
    plt.grid(True,linestyle="--",alpha=0.5)
    
    # 添加描述信息
    plt.xlabel("时间",fontsize=10)
    plt.ylabel("温度",fontsize=10)
    plt.title("某城市11时-12时的温度变化曲线",fontsize=20)
    
    #图像保存 必须放到show前,因为show会释放资源
    
    plt.savefig('./temp.png')
    
    ##4、显示
    plt.show()
    

    5、实现多条曲线

    import matplotlib.pyplot as plt
    import random
    from pylab import mpl
    # 设置显示中文字体
    mpl.rcParams["font.sans-serif"] = ["SimHei"]
    # 设置正常显示符号
    mpl.rcParams["axes.unicode_minus"] = False
    #1、准备数据
    x = range(60)
    y_temp = [random.uniform(15,18) for i in x]
    y_temp1 = [random.uniform(5,10) for i in x]
    ##2、绘制画布
    plt.figure(figsize=(20,8),dpi=100)
    ##3、绘制图像
    plt.plot(x,y_temp,label="temp")
    plt.plot(x,y_temp1,label="temp1",color='r',linestyle='--')
    #3.1添加x、y轴刻度
    ##构造x轴刻度标签
    x_ticks_lable = ["11点{0}分".format(i) for i in x]
    ##构造y轴刻度标签
    y_ticks = range(40)
    # 修改x,y轴坐标的刻度显示
    plt.xticks(x[::5],x_ticks_lable[::5])
    plt.yticks(y_ticks[::5])
    #添加网格显示 True 显示网格线 linestyle="--" 线条格式,alpha=0.5 透明度
    plt.grid(True,linestyle="--",alpha=0.5)
    
    # 添加描述信息
    plt.xlabel("时间",fontsize=10)
    plt.ylabel("温度",fontsize=10)
    plt.title("某城市11时-12时的温度变化曲线",fontsize=20)
    
    #显示图列
    plt.legend(loc='best')
    #图像保存 必须放到show前,因为show会释放资源
    plt.savefig('./temp.png')
    
    ##4、显示
    plt.show()
    

    图形风格和图列显示位置

    图形风格

    图列显示位置

    6、实现多个坐标轴

    实现多个坐标轴用subplots函数来实现。用matplotlib.pyplot.subplots(nrows=1, ncols=1, **fig_kw) 创建一个带有多个axes(坐标系/绘图区)的图

    注意:plt.函数名()相当于面向过程的画图方法,axes.set_方法名()相当于面向对象的画图方法。

    import matplotlib.pyplot as plt
    import random
    from pylab import mpl
    # 设置显示中文字体
    mpl.rcParams["font.sans-serif"] = ["SimHei"]
    # 设置正常显示符号
    mpl.rcParams["axes.unicode_minus"] = False
    #1、准备数据
    x = range(60)
    y_temp = [random.uniform(15,18) for i in x]
    y_temp1 = [random.uniform(5,10) for i in x]
    ##2、绘制画布
    ##plt.figure(figsize=(20,8),dpi=100)
    ## nrows=1,ncols=2 一行两列
    fig,axes = plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=100)
    ##3、绘制图像
    axes[0].plot(x,y_temp,label="temp")
    axes[1].plot(x,y_temp1,label="temp1",color='r',linestyle='--')
    #3.1添加x、y轴刻度
    ##构造x轴刻度标签
    x_ticks_lable = ["11点{0}分".format(i) for i in x]
    ##构造y轴刻度标签
    y_ticks = range(40)
    # 修改x,y轴坐标的刻度显示
    # plt.xticks(x[::5],x_ticks_lable[::5])
    # plt.yticks(y_ticks[::5])
    axes[0].set_xticks(x[::5])
    axes[0].set_yticks(y_ticks[::5])
    axes[0].set_xticklabels(x_ticks_lable[::5])
    axes[1].set_xticks(x[::5])
    axes[1].set_yticks(y_ticks[::5])
    axes[1].set_xticklabels(x_ticks_lable[::5])
    #添加网格显示 True 显示网格线 linestyle="--" 线条格式,alpha=0.5 透明度
    #plt.grid(True,linestyle="--",alpha=0.5)
    axes[0].grid(True,linestyle="--",alpha=0.5)
    axes[1].grid(True,linestyle="--",alpha=0.5)
    # 添加描述信息
    # plt.xlabel("时间",fontsize=10)
    # plt.ylabel("温度",fontsize=10)
    axes[0].set_xlabel("时间",fontsize=10)
    axes[0].set_ylabel("温度",fontsize=10)
    axes[1].set_xlabel("时间",fontsize=10)
    axes[1].set_ylabel("温度",fontsize=10)
    # plt.title("某城市11时-12时的温度变化曲线",fontsize=20)
    axes[0].set_title("某城市11时-12时的温度变化曲线",fontsize=20)
    axes[1].set_title("某城市11时-12时的温度变化曲线",fontsize=20)
    #显示图列
    # plt.legend(loc='best')
    axes[0].legend(loc='best')
    axes[1].legend(loc='best')
    #图像保存 必须放到show前,因为show会释放资源
    plt.savefig('./temp.png')
    
    ##4、显示
    plt.show()
    

  • 相关阅读:
    下载文件
    Cookie方法
    阿拉伯数字转大写
    格式化日期
    正向代理与反向代理
    get post 区别
    gulp
    什么是javascript中的同步&&异步?
    懒加载
    js操作dom时发生了什么?
  • 原文地址:https://www.cnblogs.com/yangxiao-/p/14247996.html
Copyright © 2011-2022 走看看