人工智能机器学习有关-Matplotlib工具的使用(二)

Matplotlib的使用

  • Matplotlib:可以用来画图的工具,为了让数据看起来更加直观。
    • 定义
      主要用于开发2D图表(3D),数据分析,基于分析,进行展示
    • 绘图流程
      • 创建画布
      • 绘制图像
      • 显示图像
点击查看代码
 import matplotlib.pyplot as plt
        # 1.创建画布
        plt.figure
        
        #2. 图像绘制
        x = [1,2,3,4,5,6]
        y = [3,6,3,6,3,10]
        plt.plot(x,y)
        
        # 3.图像展示
        plt.show()
  • matplotlib三层结构

    • 容器层
      • canvas
      • figure
      • axes
    • 辅助显示层
      添加X轴,y轴描述,标题.....
    • 图像层
      绘制什么图像的声明
  • 图像的保存
    # 1.创建画布
    # figsize指画布大小,dpi指像素
    plt.figure(figsize=(20,8),dpi=100)

    # 2. 图像绘制
    x = [1,2,3,4,5,6]
    y = [3,6,3,6,3,10]
    plt.plot(x,y)
    
    # 2.1 图像保存
    plt.savefig("./data/demo.png")  #保存在根目录下面的data文件夹里面,名字Wiedemo.png
    
    # 3.图像展示
    plt.show()  # 注意,当show之后,就释放资源了,就不可以在进行其他的操作了
    
  • 添加x,y轴
    import matplotlib.pyplot as plt
    import random

    # 0.生成数据
    x = range(60)
    # 列表生成式
    y = [random.uniform(10,15) for i in x]
    
    # 1.创建画布
    plt.figure(figsize=(20,8),dpi=100)
    
    # 2.图像绘制
    plt.plot(x,y)
    
    # 2.1 添加x,y轴刻度
    y_ticks = range(40)
    
    # 这一步出现['11点0分','11点1分','11点2分','11点3分','11点4分'。。。
    x_ticks_labels = ["11点{}分".format(i) for i in x]
    
    
    # 控制y轴,每一格之间的距离是5
    plt.yticks(y_ticks[::5])
    
    # 控制x轴,每一个格之间距离是5,且显示为11点0分,11点5分。。。
    plt.xticks(x[::5],x_ticks_labels[::5])
    
    
    # 3.图像展示
    plt.show()
    

    人工智能机器学习有关-Matplotlib工具的使用(二)

  • 添加网格
    # True代表添加网格;linestyle="--"代表网格为虚线,“-”代表为实线,alpha=1代表为透明度
    plt.grid(True,linestyle="--",alpha=1)
    人工智能机器学习有关-Matplotlib工具的使用(二)

  • 添加描述
    # 2.3 添加描述
    plt.xlabel("时间")
    plt.ylabel("温度")
    plt.title("一小时温度变化图",fontsize=20)

如果汉字不显示,则这样解决:

import matplotlib.pyplot as plt
plt.rc('font', family='SimHei', size=13)

人工智能机器学习有关-Matplotlib工具的使用(二)

  • 绘制多个曲线并显示图例
    import matplotlib.pyplot as plt
    import random
    import matplotlib.pyplot as plt
    plt.rc('font', family='SimHei', size=20)

    # 0.生成数据
    x = range(60)
    y_beijing = [random.uniform(10,15) for i in x]
    y_shanghai = [random.uniform(15,25) for i in x]
    
    # 1.创建画布
    plt.figure(figsize=(20,8),dpi=100)
    
    # 2.图像绘制,显示图例的话需要在这个里面假如label
    plt.plot(x,y_beijing,label="北京")
    plt.plot(x,y_shanghai,label="上海")
    
    # 2.1 添加x,y轴刻度
    y_ticks = range(40)
    
        # 这一步出现['11点0分','11点1分','11点2分','11点3分','11点4分'。。。
    x_ticks_labels = ["11点{}分".format(i) for i in x]
    
    
        # 控制y轴,每一格之间的距离是5
    plt.yticks(y_ticks[::5])
    
        # 控制x轴,每一个格之间距离是5,且显示为11点0分,11点5分。。。
    plt.xticks(x[::5],x_ticks_labels[::5])
    
    # 2.2 添加网格
        # True代表添加网格;linestyle="--"代表网格为虚线,“-”代表为实线,alpha=1代表为透明度
    plt.grid(True,linestyle="--",alpha=1)
    
    # 2.3 添加描述
    plt.xlabel("时间")
    plt.ylabel("温度")
    plt.title("一小时温度变化图",fontsize=20)
    
    
    # 2.4 显示图例
    plt.legend()
    
    # 3.图像展示
    plt.show()
    

    人工智能机器学习有关-Matplotlib工具的使用(二)

  • 多个坐标系显示图像
    import matplotlib.pyplot as plt
    import random
    import matplotlib.pyplot as plt
    plt.rc('font', family='SimHei', size=13)

    # 0.生成数据
    x = range(60)
    y_beijing = [random.uniform(10,15) for i in x]
    y_shanghai = [random.uniform(15,25) for i in x]
    
    # 1.创建画布,nrows代表几行,ncols代表几列
    fig, axes = plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=100)
    
    # 2.图像绘制,显示图例的话需要在这个里面加入label
    axes[0].plot(x,y_beijing,label="北京",color="g",linestyle="-.")
    axes[1].plot(x,y_shanghai,label="上海")
    
    # 2.1 添加x,y轴刻度
    y_ticks = range(40)
    
    # 这一步出现'11点0分','11点1分','11点2分','11点3分','11点4分'。。。
    x_ticks_labels = ["11点{}分".format(i) for i in x]
    
    axes[0].set_xticks(x[::5])
    axes[0].set_yticks(y_ticks[::5])
    axes[0].set_xticklabels(x_ticks_labels[::5])
    
    axes[1].set_xticks(x[::5])
    axes[1].set_yticks(y_ticks[::5])
    axes[1].set_xticklabels(x_ticks_labels[::5])
    
    # 2.2 添加网格
    axes[0].grid(True,linestyle="--",alpha=1)
    axes[1].grid(True,linestyle="--",alpha=1)
    
    # 2.3添加描述
    axes[0].set_xlabel("时间")
    axes[0].set_ylabel("温度")
    axes[0].set_title("北京一小时温度变化图")
    
    axes[1].set_xlabel("时间")
    axes[1].set_ylabel("温度")
    axes[1].set_title("上海一小时温度变化图")
    # 2.4显示图例
    axes[0].legend(loc=0)
    axes[1].legend(loc=0)
    
    # 3.图像展示
    plt.show()
    

    人工智能机器学习有关-Matplotlib工具的使用(二)

上一篇:【Python-BUG】module ‘matplotlib‘ has no attribute ‘plot‘


下一篇:Matplotlib学习笔记(四)