专栏首页浊酒清味Python进阶之Matplotlib入门(一)

Python进阶之Matplotlib入门(一)

引言

Matplotlib是Python的画图领域使用最广泛的绘图库,它能让使用者很轻松地将数据图形化以及利用它可以画出许多高质量的图像,是用Python画图的必备技能。对于这个教程,大家最好亲自码一遍代码,这样可以更有收获。

概要

1、初步Matplotlib的功能;

2、学会安装Matplotlib;

3、学会结合NumPy画直线和曲线。

Matplotlib介绍和安装

1

简介

有了Matplotlib,你可以画出这些漂亮的图:

  • 线图;
  • 散点图;
  • 等高线图;
  • 条形图;
  • 柱状图;
  • 3D 图形,
  • 甚至是图形动画等等.

使用Matplotlib第一步就是把它的模块import进去:

import matplotlib.pyplot as plt

这里的pyplot是matplotlib的子包。为了方便快速绘图,matplotlib通过pyplot模块提供了一套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。

我们要搞清楚pyplot以及pylab的区别。matplotlib还提供了一个名为pylab的模块,其中包括了许多NumPy和pyplot模块中常用的函数,方便用户快速进行计算和绘图,十分适合在IPython交互式环境中使用。

在这里我们不讨论pylab的使用而是专注于pyplot

2

安装

对于Windows系统,我们一般使用pip命令安装matplotlib,

首先打开管理员模式的终端,然后输入命令:

pip install matplotlib

基本使用方法

我们先介绍Matplotlib最简单的画图代码,也就是画线图:

  1. 直线
  2. 曲线

1

直线

第一步我们要确定x轴的数据。这里我们使用“人造”数据,而不是真实的数据,这就需要用到我们在NumPy教程中学习到的linspace函数:

linspace是linear space的缩写,线性空间。它有五个基本参数:

  1. 起始值
  2. 终值
  3. 总数目
  4. endpoint
  5. retstep

其中endpoint表示是否包含终值,默认endpont=True;而retstep表示是否显示数组,默认值retstep=False;通过总数目,在给定起始值和终止值的时候,步长就会被确定。

比如np.linspace(1,10,10)表示的是1,2,...,10。

清楚了np.linspace用法,我们就可以画直线了:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1, 1, 50)
y = 2*x + 1
plt.plot(x, y)
plt.show()

x轴的数据由linspace函数建立,而y轴数据通过x轴获得,由于我们要画直线,所以我们通过y=ax+b的直线公式来获得y轴的数据。另外plt是matplotlib.pyplot的缩写,这是一个习惯,建议大家也这么使用。plot函数负责画图,而show函数负责将画好的图显示出来。

运行结果:

2

曲线

对于曲线,我们选择NumPy中的正弦和余弦函数来展示:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 256)
y1,y2 = np.cos(x), np.sin(x)

plt.plot(x,y1)
plt.plot(x,y2)

plt.show()

我们通过NumPy中的linspace建立了x轴,因为是正弦和余弦函数,因此我们用圆周率pi设定x轴的起始值和终值。这次,我们一次性在图上画了两条线。我们还没有对直线设定颜色,粗细,这个会在后面的教程学习,但是matplotlib会自动给两天直线设置不同的颜色,方便区分。

运行结果:

最后,大家也能看出来使用matplotlib画图的时候,始终离不开NumPy,所以建议大家把忘了的NumPy知识复习一遍。

本文分享自微信公众号 - Python与机器学习之路(gh_39aead19f756),作者:Huangwei AI

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python进阶之Matplotlib入门(四)

    Matplotlib是Python的画图领域使用最广泛的绘图库,它能让使用者很轻松地将数据图形化以及利用它可以画出许多高质量的图像,是用Python画图的必备技...

    HuangWeiAI
  • 你最爱的编辑器是哪一款?快来认领对应的性格特质

    市面上有着各种各样的文档编辑器,不同的人选择了不同的编辑器。其实,你的选择在一定程度上反映了你的个性特征。今天,我们就来盘点一下不同编辑器对应的特质吧。

    HuangWeiAI
  • Python进阶之Matplotlib入门(七)

    Matplotlib是Python的画图领域使用最广泛的绘图库,它能让使用者很轻松地将数据图形化以及利用它可以画出许多高质量的图像,是用Python画图的必备技...

    HuangWeiAI
  • Vue组件间通信方式

      当前组件接收到的 props 对象。Vue 实例代理了对其 props 对象属性的访问。在父组件中使用子组件,本质通过v-bind绑定属性传入子组件,子组件...

    TimothyJia
  • maven实现打包带源代码的jar包

    说明:默认的资源文件夹是src/main/resource,此方法修改了资源文件夹,让你默认的资源文件夹变成了src/main/java文件夹。而这个文件夹在m...

    試毅-思伟
  • 浙江工业大学校赛 画图游戏 BugZhu抽抽抽!!

    BugZhu抽抽抽!! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768...

    ShenduCC
  • Hive实现自增序列及元数据问题

    在利用数据仓库进行数据处理时,通常有这样一个业务场景,为一个Hive表新增一列自增字段(比如事实表和维度表之间的"代理主键")。虽然Hive不像RDBMS如my...

    大数据学习与分享
  • 小米:VR产业中Android的现状与挑战

    IT大咖说
  • 箱体图Boxplot及Python绘制方

    箱体图Boxplot是一种表示数据分布的方法(wiki:boxplot),一个基本的箱体图从上到下分别表示最大值,上四分位,均值,下四分位,最小值。有的箱体图中...

    py3study
  • 「递归」第3集 | 向善的信念,让技术自带光芒

    ? 我们为什么叫「递归」 “递归” (recursion) 是一种在程序设计语言中被广泛使用的算法。它有两大特点,一是调用自己,二是化繁为简。我们当中那些优...

    腾讯技术工程官方号

扫码关注云+社区

领取腾讯云代金券