Python之matplotlib工具包使用入门——绘制简单图表

matplotlib是Python中最常用的绘制图表的工具包,它提供一整套和MATLAB类似的绘图数据集,此外还有许多插件工具集,如绘制3D图形的mplot3,以及用于绘制地图的Catapy等,同时matplotlib还整合了LaTex,支持数学公式表达式。
官网链接:https://matplotlib.org/

文章目录

      • 绘图简介
      • 设置图表属性
        • 1️⃣添加标题和文本
        • 2️⃣设置坐标轴属性
        • 3️⃣增加网格
        • 4️⃣定义字体与符号
        • 5️⃣增加图例

绘图简介

Matplotlib的大多数绘图函数都是在matplotlib.pyplot模块中,其通常的引入约定是:import matplotlib.pyplot as plt

利用pyplot模块绘制图表的步骤如下:

  • ①创建Figure对象,即绘图窗口。
  • ②在绘图窗口创建Axes对象,即绘图区域(一个绘图窗口可以有多个绘图区域)
  • ③在绘图区域绘制图表。
  • ④显示绘图窗口或直接保存图表

绘图窗口的创建→figure()函数,该函数的关键字参数有:

  • num:figure的编号,缺省情况下是从1开始自动递增;
  • figsize:为figure的尺寸,用(width,height)表示,缺省值是(8,6),单位英寸;
  • dpi:分辨率,缺省值为80;
  • facecolor和edgecolor分别为前景色和边缘色,缺省为白色和黑色。

绘图区域的创建:

  • 利用Figure对象的add_subplot(nrows, ncols, index, **kwargs)方法(或pyplot模块的subplot函数),其中,nrows和ncols表示把绘图窗口分成nrows x ncols个区域,index为索引号,均用数字表示。
  • 利用Figure对象的add_axesadd_axes(rect, projection=None, polar=False, **kwargs)方法(或pyplot模块的axes函数),其中rect参数是由四个值(left、bottom、width、height)组成的列表,所有数量均以图形宽度和高度的分数表示。

此外,为方便操作,如果当前当前窗口中没有Axes对象,pyplot模块将自动产生一个新的Axes对象;如果没有创建绘图窗口,则会自动产生一个缺省的绘图窗口。
plot(x, y)是最常用的绘图函数,用于绘制x和y序列的线图或点图,缺省情况下画的是线,且x可缺省(缺省值为0到n-1的序列)。show()函数将显示绘图窗口,savefig(filename)函数可直接将输出图像保存到指定路径。

示例(产生一个简单的图表显示并保存):

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y)
plt.show()
plt.savefig("D:/tmp/Figure_1.png")

Python之matplotlib工具包使用入门——绘制简单图表_第1张图片

设置图表属性

1️⃣添加标题和文本

利用pyplot的title(s) 函数可设置图表的标题,s 为标题字符串。
利用pyplot的text(x, y, s) 函数可在坐标为x和y处的位置上增加文本,s为文本字符串。
这里,s也可以是LaTex表达式(即能在图表中插入数学表达式),LaTex表达式位于两个 $ 符合之间。

示例(在图表中添加标题和文本):

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.title("This a matplotlib plot picture")
plt.text(2, 8, "$y=x^2$")
plt.plot(x, y)
plt.show()

Python之matplotlib工具包使用入门——绘制简单图表_第2张图片

2️⃣设置坐标轴属性

利用pyplot的xlabel(s)和ylabel(s) 函数可可分别设置x轴和y轴的标签,s为标签字符串。
利用pyplot的xlim(min_value, max_value)和ylim(min_value, max_value) 函数可设置坐标轴的范围。
利用pyplot的xticks(locs, labels)和yticks(locs, labels)函数可指定刻度线位置及对应的标注。
示例:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.title("This a matplotlib plot picture")
plt.text(2, 8, "$y=x^2$")
plt.xlabel("month")
plt.ylabel("value")
plt.xlim(0, 5)
plt.ylim(0, 20)
plt.xticks([1, 2, 3, 4], ["Jan", "Feb", "Mar", "Apr"])
plt.plot(x, y)
plt.show()

Python之matplotlib工具包使用入门——绘制简单图表_第3张图片

3️⃣增加网格

利用pyplot的grid(b)函数,并设置参数b为True,即在图表上按照刻度线绘制网格。
示例:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.title("This a matplotlib plot picture")
plt.text(2, 8, "$y=x^2$")
plt.xlabel("month")
plt.ylabel("value")
plt.xlim(0, 5)
plt.ylim(0, 20)
plt.xticks([1, 2, 3, 4], ["Jan", "Feb", "Mar", "Apr"])
plt.grid(True)  # 增加格网
plt.plot(x, y)
plt.show()

Python之matplotlib工具包使用入门——绘制简单图表_第4张图片

4️⃣定义字体与符号

可通过一些关键字参数来对一些字体和符号进行定义,相关的关键字参数有fontsize、color、marker、markersize、linesize、linestyle、linewidth、bbox等。
pyplot模块内置的颜色及别名:
Python之matplotlib工具包使用入门——绘制简单图表_第5张图片
pyplot模块内置的线和点符号:
Python之matplotlib工具包使用入门——绘制简单图表_第6张图片
示例:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.title("This a matplotlib plot picture")
plt.text(2, 8, "$y=x^2$", fontsize=20, bbox={'facecolor': 'yellow', 'alpha': 0.2})
plt.plot(x, y, color="r")
plt.plot(x, y, ".", color="k")
plt.show()

Python之matplotlib工具包使用入门——绘制简单图表_第7张图片

5️⃣增加图例

可利用pyplot的legend(list, loc) 函数,来添加图例。参数list是一个字符串列表,用来标注图例中的符号,字符串的顺序要和符号绘制顺序对应。list也可缺省(缺省将以label属性值进行标注),参数loc设置位置(0最佳位置,1右上角,2左上角,3右下角,4左下角,5右侧,6左侧垂直居中,7右侧垂直居中,8下方水平居中,9上方水平居中,10正中间)
示例:

import matplotlib.pyplot as plt

y1 = [1, 5, 3, 9]
y2 = [4, 6, 7, 8]
plt.plot(y1, color="r")
plt.plot(y2, color="g")
plt.legend(["line1", "line2"], loc=2)
plt.show()

Python之matplotlib工具包使用入门——绘制简单图表_第8张图片

你可能感兴趣的:(Python,python)