机器学习(3)- Matplotlib

本文详细介绍了Matplotlib库的使用,从HelloWorld开始,讲解了折线图的绘制与基础功能,包括如何完善折线图的辅助显示层和图像层,如添加刻度、网格、描述信息和图例。此外,还探讨了折线图的应用场景及常见图像类型,如散点图、柱状图、直方图和饼状图的绘制方法。
摘要由CSDN通过智能技术生成

Matplotlib

一. Matplotlib之HelloWorld

  1. 什么是Matplotlib
    专门绘制2D图表的软件

  2. 为什么要学习Matplotlib
    做数据可视化, Matplotlib是一个比较方便的工具

  3. 实现一个简单的Matplotlib画图

  4. 导入: import matplotlib.pyplot as plt

    1. 准备数据
    2. 创建画布
    3. 绘图
    4. 展示
  5. Matplotlib三层结构

    1. 容器层

      画板 -> 画布 -> 坐标系

    2. 辅助层

      1. 刻度, 坐标轴的标题, 标题, 网格, 图例
    3. 图像层

      1. 折线, 柱状图, 散点图, 饼状图, 直方图 …

二. 折线图(plot)与基础绘图功能

1. 折线图绘制与保存图片
  1. 绘图三步:
    1. 创建画布
    2. 绘图
    3. 展示
  2. 保存图片
  • API: plt.savefig(path)
  • 注意: 必须在show()前调用
  • 原因: show()把画布清空了.
2. 完善原始折线图1(辅助显示层)
  • 2.1 添加自定义x,y刻度

    • 添加x轴刻度

      • api: plt.xticks(x, 刻度文本列表)
    • 添加y轴刻度

      • api: plt.yticks(y, 刻度文本列表)
    • 注意:

      1. 第一个参数必须是一个标量的列表
      2. 刻度文本列表必须和标量的列表一一对应
      import random
      # 准备数据
      
      x = range(60)
      y_gz = [random.randint(25,35)  for i in x]
      
      # 创建画布
      
      plt.figure(figsize=(20, 8), dpi=80)
      
      # 绘图
      
      plt.plot(x, y_gz)
      
      # 添加刻度
      
      # 准备刻度的数据
      
      x_ticks = ['11点{}分'.format(i) for i in x]
      y_ticks = range(40)
      
      # 设置刻度
      
      plt.xticks(x[::5], x_ticks[::5], fontsize=20)
      plt.yticks(y_ticks[::5], fontsize=20)
      
      # 展示
      
      plt.show()
      
  • 2.2 中文显示问题解决[了解]

    1. 下载黑体
    
    2. 拷贝字体文件
    
        # ~/.virtualenvs/ai/local/lib/python3.5/site-packages/matplotlib/mpl-data/fonts/ttf
        # 字体文件
        # 打印matplotlib配置文件的位置
        import matplotlib
        print(matplotlib.matplotlib_fname())
    
    1. 编辑配置文件

        #cd  ~/.virtualenvs/ai/local/lib/python3.5/site-packages/matplotlib/mpl-data 
        #vim matplotlibrc 
      
        # 添加下面内容到配置文件中
        font.family         : sans-serif
        font.sans-serif         : SimHei
        axes.unicode_minus  : False
      
    2. 删除缓存文件

        rm -r ~/.cache/matplotlib/*
      
    3. 重新运行 jupyter notebook

  • 2.3 添加网格显示

    • API: plt.grid(linestyle, alpha, color)
    • 参数:
      • linestyle; 线的样式, - 实线, --虚线
    • alpha: 透明度
      • color: 颜色 r,g,b
  • 2.4 添加描述信息

    • 添加x轴描述: plt.xlabel(‘名称’, fontsize)
    • 添加y轴描述: plt.ylabel(‘名称’, fontsize)
    • 添加标题: plt.title(‘标题’, fontsize)
3. 完善原始折线图2(图像层)
  • 3.1 多次plot

    • 如何绘制多折线图?
      • 调用多次 plt.plot()
    • plt.plot(x,y,linestyle,color,label)
    • linestyle; 线的样式, - 实线, – 虚线
    • color: r,g,b,y,c,m,k(黑色)
    • label: 给线打标签(起名字)
  • 3.2 图例

    • plt.legend(loc=‘best’, fontsize=20)
    • 注意: 线要有label.
    1. 多个坐标系显示-plt.subplots(面向对象的画图方法)
    • API: plt.subplots(nrows=1, ncols=1, figsize=(20, 10), dpi=80)
    • 参数:
      • nrows: 有几行坐标系
      • ncols: 有几列坐标系
      • figsize: 画布大小
      • dpi: 清晰度
    • 返回:
      • 画布, 坐标系的元组(列表)
  • 坐标系功能与plt相同, 有些方法不同

    • set_xticks()
    • set_yticks()
    • set_xticklabels()
    • set_title()
    • set_xlabel()
    • set_ylabel()
# 准备数据
x = range(60
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值