曾经我在高中的时候有一篇数学探索的小作业,其中我需要画出一张比较复杂的函数图。由于 X 和 Y 的坐标轴标签都需要一定的自定义,所以微软 Office 自带的画图工具自然无法满足我的要求。经过一段时间的寻找,我终于找到了最适合自己的工具:那就是用 Python。
其实,「用 Python」这个说法比较笼统,我们在这篇文章其实是要学习 Python 的一个模组:matplotlib 的简单使用方法。
使用 matplotlib 这个模组,我们就可以摆脱微软 Office 的传统画图方法。以此带来的新画图方法就是通过数学式的方法来画图。更加有用的是,我们可以方便地自定义图表,画出更好看、更美观的效果。
诚然,使用 matplotlib 画图离不开使用编程语言。但是请务必不要害怕接触编程:画出一个简单的图只需要几行非常简单并且易于理解的代码。画出复杂一些的图片也会有一些常识和修正,不过请放心,本篇文章将不会涉及任何高级编程知识,零基础也能上手。
安装必要的软件
本篇文章中,我们涉及到的软件只有一个免费软件,那就是 Anaconda。你可以在 这个网站 上下载到 Anaconda,软件完全免费,并支持 Windows 和 macOS。如果你有安装 Visual Studio,你可以直接在 Visual Studio 内下载并安装 Anaconda。通常我们会选择 Python 3.6 版本。
安装完成之后,你会在开始菜单中的 Anaconda 文件夹中看到 Spyder 这个应用,我们打开这个应用,迎面而来的就是一个代码编辑器,我们就要在这个代码编辑器内写出所有画图的代码。
编写代码:初步了解 matplotlib
打开 Spyder,我们就会看到屏幕的左边是代码编辑区域,屏幕的左下角则是输出区域。在这个步骤,我们将主要操作屏幕的左边,也就是代码编辑区域,来输入我们画图用到的代码。
导入模组
编辑代码的第一步,就是告诉我们要写的程序要包括什么模组。简单来说我们就是要告诉程序,我们要在程序内包括什么功能。首先我们输入以下代码:
import matplotlib.pyplot as plt
import numpy as np
这两行代码中, import 的意思就是,我们要导入两个模组,一个叫做 matplotlib.pyplot,还有一个叫做 numpy。matplotlib.pyplot 主要负责画图功能。numpy 则负责高级数学的功能,比如解释正弦、余弦函数,Python 本身是不能通过一句简单的函数来计算某个角度的正弦的,需要外部库来支持。
在这里,as 的意思是定义一个别名。在之后的程序中,当我们需要召唤 matplotlib.pyplot 这个程序的时候,我们只需要打出 plt 即可,而无需再打出原来这么一长串。同理,numpy 在这里也被取了 np 的别名。
开始编写
在以上我们做完程序的铺垫之后,我们就可以正式开始编写画图的代码了。首先,我们要定义 X 的域,添加以下代码表示:
x = np.linspace(-1, 1, 256)
在这行代码中,我们定义了 X 轴的最小值和最大值,括号中第一个数字 -1 是 X 轴的最小值,括号中的第二个数字 1 则是 X 的最大值。256 则是取样密度,这个参数不用改变。
目前这部分很简单,