绘图类型

matplotlib 中有许多不同的绘图类型。
本节简要介绍 matplotlib 中的一些绘图类型。

线图

线图是图形中的一条简单的 2D 线。

轮廓和伪彩色

我们可以通过使用函数 pcolormesh() 用颜色表示二维数组,即使维度间隔不均匀。
同样,contour() 函数也做同样的工作。

直方图

为了以直方图的形式返回 bin 计数和概率,我们使用函数 hist()。

路径

要在 Matplotlib 中添加任意路径,我们使用 matplotlib.path 模块。

流线图

我们可以使用 streamplot() 函数来绘制向量的流线图。
我们还可以映射不同参数的颜色和宽度,例如速度时间等。

条形图

我们可以使用 bar() 函数制作带有大量自定义的条形图。

其他类型

Matplotlib 中的其他一些绘图示例包括:

  • 椭圆
  • 饼状图
  • 散点图
  • 图形用户界面小部件
  • 填充曲线
  • 日期处理
  • 日志图
  • 图例
  • TeX- 文本对象的符号
  • 本机 TeX 渲染
  • 脑电图形用户界面
  • XKCD 风格的草图

轴范围

我们可以分别使用 pyplot 的 xlim() 和 ylim() 函数来设置 x 和 y 轴的范围或者限制。

matplotlib.pyplot.xlim([starting_point, ending_point])
matplotlib.pyplot.ylim([starting_point, ending_point])

考虑下面的示例来设置绘图的 x 轴限制:

from matplotlib import pyplot as plt
x1 = [40, 50, 60, 70, 80, 90, 100]
y1 = [40, 50, 60, 70, 80, 90, 100]
plt.plot(x1, y1)
plt.xlim([0,160])
plt.show()

在这个例子中,x 轴上的点将从 0 到 160 开始,如下所示:

同样,要限制 y 轴坐标,我们将放置以下代码行:

plt.ylim([0,160])

绘制多条线

要绘制多条垂直线,我们可以创建一个 x 点/坐标数组,然后遍历数组的每个元素以绘制多条线:

import matplotlib.pyplot as plt
xpoints = [0.2, 0.4, 0.6]
for p in xpoints:
    plt.axvline(p,  label='pyplot vertical line')
plt.legend()
plt.show()

我们也可以在图表中为每条线使用不同的颜色。

import matplotlib.pyplot as plt
xpoints = [0.2, 0.4, 0.6]
colors = ['g', 'c', 'm']
for p, c in zip(xpoints, colors):
    plt.axvline(p,  label='line: {}'.format(p), c=c)
plt.legend()
plt.show()

大括号 {} 充当占位符,在 format() 函数的帮助下将 Python 变量添加到打印中。

只需将上一个示例中的 axvline() 替换为 axhline(),我们就会在绘图上有多条水平线:

import matplotlib.pyplot as plt
ypoints = [0.2, 0.4, 0.6, 0.68]
colors = ['b', 'k', 'y', 'm']
for p, c in zip(ypoints, colors):
    plt.axhline(p,  label='line: {}'.format(p), c=c)
plt.legend()
plt.show()

标签轴

我们可以使用 pyplot 的 xlabel() 和 ylabel() 函数为 x 和 y 轴创建标签。

matplotlib.pyplot.xlabel(labeltext, labelfontdict, **kwargs)
matplotlib.pyplot.ylabel(labeltext, labelfontdict, **kwargs)

在上面的语法中,labeltext是标签的文本,是一个字符串; labelfont 描述了标签文本的字体大小、粗细、族,它是可选的。

from matplotlib import pyplot as plt
x1 = [40, 50, 60, 70, 80, 90, 100]
y1 = [40, 50, 60, 70, 80, 90, 100]
plt.plot(x1, y1)
plt.xlabel('Like Geeks X Axis')
plt.ylabel('Like Geeks Y Axis')
plt.show()

在上面的例子中,我们分别有 x 和 y 坐标的常规 x 和 y 数组。
然后 plt.xlabel() 为 x 轴生成文本, plt.ylabel() 为 y 轴生成文本。

安装

只需要使用pip命令安装matplotlib包就可以开始了。

使用以下命令:

$ pip install matplotlib

如果该软件包尚不存在,则会下载并安装该软件包。

要将包导入 Python 文件,请使用以下语句:

import matplotlib.pyplot as plt

其中 matplotlib 是库,pyplot 是一个包,其中包含在 Python 中使用 MATLAB 函数的所有 MATLAB 函数。

最后,我们可以使用 plt 来调用 python 文件中的函数。

Matplotlib 使用 pyplot 绘制图形

Matplotlib 是 Python 中的一个库,用于创建二维图形来可视化数据。
可视化总是有助于更好地分析数据并增强用户的决策能力。

绘制多图

借助 Python pyplot 的 subplot() 函数,我们可以在同一图中生成多个绘图。

matplotlib.pyplot.subplot(nrows, ncols, index, **kwargs)

在参数中,我们有三个整数要指定,一行和一列中的图数,然后图应该在哪个索引处。
你可以把它看作一个网格,我们在它的单元格上绘制。

第一个数字是 nrows 行数;第二个是 ncols 列数,然后是index。
其他可选参数 (kwargs) 包括颜色、标签、标题、快照等。

在一个图中绘制多个图形示例:

from matplotlib import pyplot as plt
plt.subplot(1, 2, 1)
x1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
y1 = [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
plt.plot(x1, y1, color = "c")

plt.subplot(1, 2, 2)
x2 = [40, 50, 60, 70, 80, 90, 100]
y2 = [40, 50, 60, 70, 80, 90, 100]
plt.plot(x2, y2, color = "m")
plt.show()

第一件事是定义绘图的位置。
在第一个子图中, 1, 2, 1 表示我们有 1 行 2 列,当前的图将在索引 1 处绘制。
类似地, 1, 2, 2 表示我们有 1 行 2 列,但这次是索引 2 处的图。

下一步是创建数组以在图中绘制整数点。

要绘制水平图,请将子图行和列值更改为:

plt.subplot(2, 1, 1)
plt.subplot(2, 1, 2)

现在让我们创建一个 2×2 的绘图网格。

from matplotlib import pyplot as plt
plt.subplot(2, 2, 1)
x1 = [40, 50, 60, 70, 80, 90, 100]
y1 = [40, 50, 60, 70, 80, 90, 100]
plt.plot(x1, y1, color = "c")

plt.subplot(2, 2, 2)
x2 = [40, 50, 60, 70, 80, 90, 100]
x2 = [40, 50, 60, 70, 80, 90, 100]
plt.plot(x2, y2, color = "m")

plt.subplot(2, 2, 3)
x3 = [40, 50, 60, 70, 80, 90, 100]
y3 = [40, 50, 60, 70, 80, 90, 100]
plt.plot(x3, y3, color = "g")

plt.subplot(2, 2, 4)
x4 = [40, 50, 60, 70, 80, 90, 100]
y4 = [40, 50, 60, 70, 80, 90, 100]
plt.plot(x4, y4, color = "r")
plt.show()

在此示例中,2,2,1 表示 2 行 2 列,绘图将位于索引 1.
类似地,2,2,2 表示 2 行 2 列,绘图将位于网格的索引 2 .

保存图

绘制图形后,如何保存输出图?

要保存绘图,请使用 pyplot 的 savefig()。

plt.savefig(fname, **kwargs)

其中 fname 是文件名,目标或者路径也可以与文件名一起指定。
kwargs 参数是可选的。
我们可以使用kwargs来更改方向、格式、面色、质量、dpi 等。

import matplotlib.pyplot as plt
ypoints = [0.2, 0.4, 0.6, 0.68]
colors = ['b','k','y', 'm']
for p, c in zip(ypoints, colors):
    plt.axhline(p,  label='line: {}'.format(p), c=c)
plt.savefig('horizontal_lines.png')
plt.legend()
plt.show()

清除绘图

pyplot 的 clf() 函数清除绘图。

matplotlib.pyplot.clf()

在 clf() 函数中,我们没有任何参数。

from matplotlib import pyplot as plt
x1 = [40, 50, 60, 70, 80, 90, 100]
y1 = [40, 50, 60, 70, 80, 90, 100]
plt.plot(x1, y1)
plt.xlabel('Like Geeks X Axis')
plt.ylabel('Like Geeks Y Axis')
plt.clf()
plt.show()

在此代码中,我们创建了一个图并定义了标签。
之后,我们使用 clf() 函数清除绘图。

字体大小

我们可以借助名为 rc() 的函数来更改绘图的字体大小。
rc() 函数用于自定义 rc 设置。
要使用 rc() 更改字体大小,请使用以下语法:

matplotlib.pyplot.rc('fontname', **font)

或者

matplotlib.pyplot.rc('font', size=sizeInt)

上面语法中的字体是一个用户定义的字典,它指定了文本的粗细、字体系列、字体大小等。

plt.rc('font', size=30)

垂直线

要使用 pyplot 绘制垂直线,可以使用 axvline() 函数。

axvline 的语法如下:

plt.axvline(x=0, ymin=0, ymax=1, **kwargs)

在此语法中: x 是 x 轴的坐标。
该点是从垂直生成线的地方。
ymin 是垂直线的底部; ymax 是图的顶部。

kwargs是行的属性,例如颜色、标签、行样式等。

示例:

import matplotlib.pyplot as plt
plt.axvline(0.2, 0, 1, label='pyplot vertical line')
plt.legend()
plt.show()

在这个例子中,我们画了一条垂直线。
0.2 表示将在图形上的 0.2 点绘制线。
0 和 1 分别是 ymin 和 ymax。

标签label是线属性之一。
Legend() 是 MATLAB 函数,它可以在图上启用标签。
最后,show() 将打开绘图或者图形屏幕。

水平线

axhline() 绘制一条水平线。
axhline() 的语法如下:

plt.axhline(y=0, xmin=0, xmax=1, **kwargs)

在语法中:y 是沿 y 轴的坐标。
这些点是从水平生成线的地方。
xmin 是图的左边; xmax 是图的右侧。
kwargs是行的属性,例如颜色、标签、行样式等。

在前面的例子中用 axhline() 替换 axvline() ,你将在图中有一条水平线:

import matplotlib.pyplot as plt
ypoints = 0.2
plt.axhline(ypoints, 0, 1, label='pyplot horizontal line')
plt.legend()
plt.show()
日期:2020-07-15 11:16:27 来源:oir作者:oir