博客
关于我
【Matplotlib】(一)绘制图像函数
阅读量:464 次
发布时间:2019-03-06

本文共 2256 字,大约阅读时间需要 7 分钟。

Matplotlib绘图库入门

Matplotlib 是 Python 中最著名的绘图库之一,它提供了类似于 MATLAB 的命令 API,非常适合用于交互式绘图。Matplotlib 的文档非常全面,并配有丰富的 Gallery 页面,里面有上百幅缩略图,每幅图都附有源代码。因此,只要你需要绘制某种类型的图像,只需在 Gallery 中浏览、复制、粘贴即可,基本上都能轻松完成。

1.1 代码实现

为了实现绘制函数 ( y = x^2 ) 的图像,我们可以按照以下步骤进行:

  • 导入 Matplotlib 和 NumPy 库:

    import matplotlib.pyplot as plt
    import numpy as np
  • 定义 x 变量的范围 (-3, 3),数量为 50:

    x = np.linspace(-3, 3, 50)
    y = x ** 2
  • 创建一个 Figure 对象并指定大小:

    plt.figure(num=3, figsize=(8, 5))
  • 绘制曲线,设置颜色为红色,线宽度为 1,线型为虚线:

    plt.plot(x, y, color='red', linewidth=1.0, linestyle='--')
  • 设置 x 和 y 轴的范围及标注:

    plt.xlim(-1, 2)
    plt.ylim(-2, 3)
    plt.xlabel('x')
    plt.ylabel('y')
  • 设置坐标轴刻度:

    new_ticks = np.linspace(-1, 2, 5)
    plt.xticks(new_ticks)
    plt.yticks([-2.2, -1, 1, 1.5, 2.4], [r'$really bad$', r'$bad$', r'$normal$', r'$good$', r'$really good$'])
  • 隐藏坐标轴边框并调整位置:

    ax = plt.gca()
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    ax.xaxis.set_ticks_position('bottom')
    ax.spines['bottom'].set_position(('data', 0))
    ax.yaxis.set_ticks_position('left')
    ax.spines['left'].set_position(('data', 0))
  • 设置标题:

    ax.set_title('y = x^2', fontsize=14, color='r')
  • 显示图像:

    plt.show()
  • 1.2 基本构成

    在 Matplotlib 中,图像由 Figure 对象和 Axes 对象组成。每个 Axes 对象都有独立的坐标系统。关系如下:

    • Title:图像标题
    • Axis:坐标轴
    • Label:坐标轴标注
    • Tick:刻度线
    • Tick Label:刻度注释

    2.1 绘制简单图像

    要绘制简单的图像,可以按照以下步骤进行:

  • 导入必要的模块:

    import matplotlib.pyplot as plt
    import numpy as np
  • 定义 x 变量的范围:

    x = np.linspace(-3, 3, 50)
    y = x ** 2
  • 创建 Figure 并绘制曲线:

    plt.figure()
    plt.plot(x, y)
    plt.show()
  • 2.2 设置 Figure 图像

    为了更好地定制图像,可以按照以下步骤进行:

  • 创建 Figure 对象并指定大小:

    plt.figure(num=3, figsize=(8, 5))
  • 绘制曲线并设置属性:

    plt.plot(x, y, color='red', linewidth=1.0, linestyle='--')
  • 2.3 设置坐标轴

    为了使图像更加精确,可以按照以下步骤进行:

  • 设置 x 轴范围及刻度:

    new_ticks = np.linspace(-1, 2, 5)
    plt.xticks(new_ticks)
  • 设置 y 轴范围及刻度:

    plt.yticks([-2.2, -1, 1, 1.5, 2.4], [r'$really bad$', r'$bad$', r'$normal$', r'$good$', r'$really good$'])
  • 2.4 移动坐标轴

    为了使坐标轴更加美观,可以按照以下步骤进行:

  • 获取当前坐标轴:

    ax = plt.gca()
  • 隐藏边框:

    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
  • 调整坐标轴位置:

    ax.xaxis.set_ticks_position('bottom')
    ax.yaxis.set_ticks_position('left')
  • 设置边框位置:

    ax.spines['bottom'].set_position(('data', 0))
    ax.spines['left'].set_position(('data', 0))
  • 2.5 设置标题

    最后,可以设置图像标题:

    ax.set_title('y = x^2', fontsize=14, color='r')

    通过以上步骤,你可以轻松地使用 Matplotlib 绘制出高质量的图像,并进行各种定制。

    转载地址:http://jlpfz.baihongyu.com/

    你可能感兴趣的文章
    Nginx:NginxConfig可视化配置工具安装
    查看>>
    ngModelController
    查看>>
    ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
    查看>>
    ngrok内网穿透可以实现资源共享吗?快解析更加简洁
    查看>>
    NHibernate学习[1]
    查看>>
    NHibernate异常:No persister for的解决办法
    查看>>
    NIFI1.21.0_java.net.SocketException:_Too many open files 打开的文件太多_实际操作---大数据之Nifi工作笔记0051
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
    查看>>
    NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
    查看>>