matplotlib库

概念

Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。

Matplotlib 可以用来绘制各种静态,动态,交互式的图表。

Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。

Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。

Matplotlib 通常与 NumPy 和 SciPy(Scientific Python)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

SciPy 是一个开源的 Python 算法库和数学工具包。

SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。

Matplotlib 安装

我们使用 pip 工具来安装 Matplotlib 库:

pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后,我们就可以通过 import 来导入 matplotlib 库:

import matplotlib

以下实例,我们通过导入 matplotlib 库,然后查看 matplotlib 库的版本号:

import matplotlib
print(matplotlib.__version__)

执行以上代码,输出结果如下:

3.5.1

Matplotlib Pyplot

Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。

Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。

Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。

使用的时候,我们可以使用 import 导入 pyplot 库,并设置一个别名 plt

import matplotlib.pyplot as plt

这样我们就可以使用 plt 来引用 Pyplot 包的方法。

以下是一些常用的 pyplot 函数:

  • plot():用于绘制线图和散点图
  • scatter():用于绘制散点图
  • bar():用于绘制垂直条形图和水平条形图
  • hist():用于绘制直方图
  • pie():用于绘制饼图
  • imshow():用于绘制图像
  • subplots():用于创建子图

除了这些基本的函数,pyplot 还提供了很多其他的函数,例如用于设置图表属性的函数、用于添加文本和注释的函数、用于保存图表到文件的函数等等。

以下实例,我们通过两个坐标 (0,0)(6,100) 来绘制一条线:

import matplotlib.pyplot as plt
import numpy as np

xpoints = np.array([0, 6])
ypoints = np.array([0, 100])

plt.plot(xpoints, ypoints)
plt.show()

输出结果如下所示:

img

以上实例中我们使用了 Pyplot 的 plot() 函数, plot() 函数是绘制二维图形的最基本函数。

plot() 用于画图它可以绘制点和线,语法格式如下:

# 画单条线
plot([x], y, [fmt], *, data=None, **kwargs)
# 画多条线
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

参数说明:

  • x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。
  • fmt:可选,定义基本格式(如颜色、标记和线条样式)。
  • \kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。
>>> plot(x, y)        # 创建 y 中数据与 x 中对应值的二维线图,使用默认样式
>>> plot(x, y, 'bo')  # 创建 y 中数据与 x 中对应值的二维线图,使用蓝色实心圈绘制
>>> plot(y)           # x 的值为 0..N-1
>>> plot(y, 'r+')     # 使用红色 + 号

颜色字符:'b' 蓝色,'m' 洋红色,'g' 绿色,'y' 黄色,'r' 红色,'k' 黑色,'w' 白色,'c' 青绿色,'#008000' RGB 颜色符串。多条曲线不指定颜色时,会自动选择不同颜色。

线型参数:'‐' 实线,'‐‐' 破折线,'‐.' 点划线,':' 虚线。

标记字符:'.' 点标记,',' 像素标记(极小点),'o' 实心圈标记,'v' 倒三角标记,'^' 上三角标记,'>' 右三角标记,'<' 左三角标记...等等。

如果我们要绘制坐标 (1, 3) 到 (8, 10) 的线,我们就需要传递两个数组 [1, 8] 和 [3, 10] 给 plot 函数:

import matplotlib.pyplot as plt
import numpy as np

xpoints = np.array([1, 8])
ypoints = np.array([3, 10])

plt.plot(xpoints, ypoints)
plt.show()

以上代码输出结果为:

img

如果我们只想绘制两个坐标点,而不是一条线,可以使用 o 参数,表示一个实心圈的标记:

绘制坐标 (1, 3) 和 (8, 10) 的两个点

import matplotlib.pyplot as plt
import numpy as np

xpoints = np.array([1, 8])
ypoints = np.array([3, 10])

plt.plot(xpoints, ypoints, 'o')
plt.show()

以上代码输出结果为:img

我们也可以绘制任意数量的点,只需确保两个轴上的点数相同即可。

绘制一条不规则线,坐标为 (1, 3) 、 (2, 8) 、(6, 1) 、(8, 10),对应的两个数组为:[1, 2, 6, 8] 与 [3, 8, 1, 10]。

import matplotlib.pyplot as plt
import numpy as np

xpoints = np.array([1, 2, 6, 8])
ypoints = np.array([3, 8, 1, 10])

plt.plot(xpoints, ypoints)
plt.show()

以上代码输出结果为:

img

如果我们不指定 x 轴上的点,则 x 会根据 y 的值来设置为 0, 1, 2, 3..N-1

import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 10])

plt.plot(ypoints)
plt.show()

以上代码输出结果为:

img

从上图可以看出 x 的值默认设置为 [0, 1]

再看一个有更多值的实例:

import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([3, 8, 1, 10, 5, 7])

plt.plot(ypoints)
plt.show()

以上代码输出结果为:

img

从上图可以看出 x 的值默认设置为 [0, 1, 2, 3, 4, 5]

以下实例我们绘制一个正弦和余弦图,在 plt.plot() 参数中包含两对 x,y 值,第一对是 x,y,这对应于正弦函数,第二对是 x,z,这对应于余弦函数。

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0,4*np.pi,0.1)   # start,stop,step
y = np.sin(x)
z = np.cos(x)
plt.plot(x,y,x,z)
plt.show()

以上代码输出结果为:

img

Matplotlib 轴标签和标题

轴标签

我们可以使用 xlabel()ylabel() 方法来设置 x 轴和 y 轴的标签。

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.plot(x, y)

plt.xlabel("x - label")
plt.ylabel("y - label")

plt.show()

显示结果如下:

img

标题

我们可以使用 title() 方法来设置标题。

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.plot(x, y)

plt.title("RUNOOB TEST TITLE")
plt.xlabel("x - label")
plt.ylabel("y - label")

plt.show()

显示结果如下:

img

说明:Matplotlib 默认情况不支持中文,我们可以使用其他的方法来解决,了解即可。

Matplotlib 网格线

我们可以使用 pyplot 中的 grid() 方法来设置图表中的网格线。

grid() 方法语法格式如下:

matplotlib.pyplot.grid(b=None, which='major', axis='both', )

参数说明:

  • b:可选,默认为 None,可以设置布尔值,true 为显示网格线,false 为不显示,如果设置 **kwargs 参数,则值为 true。
  • which:可选,可选值有 'major'、'minor' 和 'both',默认为 'major',表示应用更改的网格线。
  • axis:可选,设置显示哪个方向的网格线,可以是取 'both'(默认),'x' 或 'y',分别表示两个方向,x 轴方向或 y 轴方向。
  • \kwargs:可选,设置网格样式,可以是 color='r', linestyle='-' 和 linewidth=2,分别表示网格线的颜色,样式和宽度。

以下实例添加一个简单的网格线,参数使用默认值:

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])

plt.title("RUNOOB grid() Test")
plt.xlabel("x - label")
plt.ylabel("y - label")

plt.plot(x, y)
plt.grid()
plt.show()

显示结果如下:

img

以下实例添加一个简单的网格线,axis 参数使用 x,设置 x 轴方向显示网格线:

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])

plt.title("RUNOOB grid() Test")
plt.xlabel("x - label")
plt.ylabel("y - label")

plt.plot(x, y)
plt.grid(axis='x') # 设置 y 就在轴方向显示网格线
plt.show()

显示结果如下:

img

以下实例添加一个简单的网格线,并设置网格线的样式,格式如下:

grid(color = 'color', linestyle = 'linestyle', linewidth = number)

参数说明:

color:'b' 蓝色,'m' 洋红色,'g' 绿色,'y' 黄色,'r' 红色,'k' 黑色,'w' 白色,'c' 青绿色,'#008000' RGB 颜色符串。

linestyle:'‐' 实线,'‐‐' 破折线,'‐.' 点划线,':' 虚线。

linewidth:设置线的宽度,可以设置一个数字。

import numpy as np
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])


plt.title("RUNOOB grid() Test")
plt.xlabel("x - label")
plt.ylabel("y - label")

plt.plot(x, y)

plt.grid(color = 'r', linestyle = '--', linewidth = 0.5)

plt.show()

显示结果如下:

img

Matplotlib 柱形图

我们可以使用 pyplot 中的 bar() 方法来绘制柱形图。

bar() 方法语法格式如下:

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)

参数说明:

x:浮点型数组,柱形图的 x 轴数据。

height:浮点型数组,柱形图的高度。

width:浮点型数组,柱形图的宽度。

bottom:浮点型数组,底座的 y 坐标,默认 0。

align:柱形图与 x 坐标的对齐方式,'center' 以 x 位置为中心,这是默认值。 'edge':将柱形图的左边缘与 x 位置对齐。要对齐右边缘的条形,可以传递负数的宽度值及 align='edge'。

\kwargs::其他参数。

以下实例我们简单实用 bar() 来创建一个柱形图:

import matplotlib.pyplot as plt
import numpy as np

x = np.array(["Runoob-1", "Runoob-2", "Runoob-3", "C-RUNOOB"])
y = np.array([12, 22, 6, 18])

plt.bar(x,y)
plt.show()

显示结果如下:

img

垂直方向的柱形图可以使用 barh() 方法来设置:

import matplotlib.pyplot as plt
import numpy as np

x = np.array(["Runoob-1", "Runoob-2", "Runoob-3", "C-RUNOOB"])
y = np.array([12, 22, 6, 18])

plt.barh(x,y)
plt.show()

显示结果如下:

img

设置柱形图颜色:

import matplotlib.pyplot as plt
import numpy as np

x = np.array(["Runoob-1", "Runoob-2", "Runoob-3", "C-RUNOOB"])
y = np.array([12, 22, 6, 18])

plt.bar(x, y, color = "#4CAF50")
plt.show()

显示结果如下:

img

自定义各个柱形的颜色:

import matplotlib.pyplot as plt
import numpy as np

x = np.array(["Runoob-1", "Runoob-2", "Runoob-3", "C-RUNOOB"])
y = np.array([12, 22, 6, 18])

plt.bar(x, y,  color = ["#4CAF50","red","hotpink","#556B2F"])
plt.show()

显示结果如下:

img

设置柱形图宽度,bar() 方法使用 width 设置,barh() 方法使用 height 设置 height

import matplotlib.pyplot as plt
import numpy as np

x = np.array(["Runoob-1", "Runoob-2", "Runoob-3", "C-RUNOOB"])
y = np.array([12, 22, 6, 18])

plt.bar(x, y, width = 0.1)
plt.show()

显示结果如下:

img

import matplotlib.pyplot as plt
import numpy as np

x = np.array(["Runoob-1", "Runoob-2", "Runoob-3", "C-RUNOOB"])
y = np.array([12, 22, 6, 18])

plt.barh(x, y, height = 0.1)
plt.show()

显示结果如下:

img

Matplotlib 饼图

饼图(Pie Chart)是一种常用的数据可视化图形,用来展示各类别在总体中所占的比例。

我们可以使用 pyplot 中的 pie() 方法来绘制饼图。

pie() 方法语法格式如下:

matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)[source]

参数说明:

  • x:浮点型数组或列表,用于绘制饼图的数据,表示每个扇形的面积。

  • explode:数组,表示各个扇形之间的间隔,默认值为0。

  • labels:列表,各个扇形的标签,默认值为 None。

  • colors:数组,表示各个扇形的颜色,默认值为 None。

  • autopct:设置饼图内各个扇形百分比显示格式,%d%% 整数百分比,%0.1f 一位小数, %0.1f%% 一位小数百分比, %0.2f%% 两位小数百分比。

  • labeldistance:标签标记的绘制位置,相对于半径的比例,默认值为 1.1,如 <1则绘制在饼图内侧。

  • pctdistance::类似于 labeldistance,指定 autopct 的位置刻度,默认值为 0.6。

  • shadow::布尔值 True 或 False,设置饼图的阴影,默认为 False,不设置阴影。

  • radius::设置饼图的半径,默认为 1。

  • startangle::用于指定饼图的起始角度,默认为从 x 轴正方向逆时针画起,如设定 =90 则从 y 轴正方向画起。

  • counterclock:布尔值,用于指定是否逆时针绘制扇形,默认为 True,即逆时针绘制,False 为顺时针。

  • wedgeprops:字典类型,默认值 None。用于指定扇形的属性,比如边框线颜色、边框线宽度等。例如:wedgeprops={'linewidth':5} 设置 wedge 线宽为5。

  • textprops:字典类型,用于指定文本标签的属性,比如字体大小、字体颜色等,默认值为 None。

  • center:浮点类型的列表,用于指定饼图的中心位置,默认值:(0,0)。

  • frame:布尔类型,用于指定是否绘制饼图的边框,默认值:False。如果是 True,绘制带有表的轴框架。

  • rotatelabels:布尔类型,用于指定是否旋转文本标签,默认为 False。如果为 True,旋转每个 label 到指定的角度。

  • data:用于指定数据。如果设置了 data 参数,则可以直接使用数据框中的列作为 x、labels 等参数的值,无需再次传递。

    除此之外,pie() 函数还可以返回三个参数:

  • wedges:一个包含扇形对象的列表。

  • texts:一个包含文本标签对象的列表。
  • autotexts:一个包含自动生成的文本标签对象的列表。

以下实例我们简单实用 pie() 来创建一个饼图:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])

plt.pie(y)
plt.show()

显示结果如下:

img

设置饼图各个扇形的标签与颜色:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])

plt.pie(y,
        labels=['A','B','C','D'], # 设置饼图标签
        colors=["#d5695d", "#5d8ca8", "#65a479", "#a564c9"], # 设置饼图颜色
       )
plt.title("RUNOOB Pie Test") # 设置标题
plt.show()

显示结果如下:

img

突出显示第二个扇形,并格式化输出百分比:

import matplotlib.pyplot as plt

# 数据
sizes = [15, 30, 45, 10]

# 饼图的标签
labels = ['A', 'B', 'C', 'D']

# 饼图的颜色
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']

# 突出显示第二个扇形
explode = (0, 0.1, 0, 0)

# 绘制饼图
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
        autopct='%1.1f%%', shadow=True, startangle=90)

# 标题
plt.title("RUNOOB Pie Test")

# 显示图形
plt.show()

我们定义了一个包含 4 个元素的列表 sizes,它表示各个类别在总体中所占的比例。然后,我们定义了一个包含 4 个元素的列表 labels,它表示各个类别的标签。接下来,我们定义了一个包含 4 个元素的列表 colors,它表示每个类别的颜色。然后,我们定义了一个包含 4 个元素的元组 explode,它用来指定是否突出某个扇形。接着,我们调用 plt.pie 函数来绘制饼图,其中传入了上述参数。最后,我们添加了一个标题,并调用 plt.show() 来显示图形。

显示结果如下:

img

import matplotlib.pyplot as plt
import numpy as np

y = np.array([35, 25, 25, 15])

plt.pie(y,
        labels=['A','B','C','D'], # 设置饼图标签
        colors=["#d5695d", "#5d8ca8", "#65a479", "#a564c9"], # 设置饼图颜色
        explode=(0, 0.2, 0, 0), # 第二部分突出显示,值越大,距离中心越远
        autopct='%.2f%%', # 格式化输出百分比
       )
plt.title("RUNOOB Pie Test")
plt.show()

img

注意:默认情况下,第一个扇形的绘制是从 x 轴开始并逆时针移动:

img

Matplotlib 绘制多图

我们可以使用 pyplot 中的 subplot()subplots() 方法来绘制多个子图。

subplot() 方法在绘图时需要指定位置,subplots() 方法可以一次生成多个,在调用时只需要调用生成对象的 ax 即可。

subplot

subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(**kwargs)
subplot(ax)

以上函数将整个绘图区域分成 nrows 行和 ncols 列,然后从左到右,从上到下的顺序对每个子区域进行编号 1...N ,左上的子区域的编号为 1、右下的区域编号为 N,编号可以通过参数 index 来设置。

设置 numRows = 1,numCols = 2,就是将图表绘制成 1x2 的图片区域, 对应的坐标为:

(1, 1), (1, 2)

plotNum = 1, 表示的坐标为(1, 1), 即第一行第一列的子图。

plotNum = 2, 表示的坐标为(1, 2), 即第一行第二列的子图。

  • 实例
import matplotlib.pyplot as plt
import numpy as np

#plot 1:
xpoints = np.array([0, 6])
ypoints = np.array([0, 100])

plt.subplot(1, 2, 1)
plt.plot(xpoints,ypoints)
plt.title("plot 1")

#plot 2:
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])

plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.title("plot 2")

plt.suptitle("RUNOOB subplot Test")
plt.show()

显示结果如下:

img

设置 numRows = 2,numCols = 2,就是将图表绘制成 2x2 的图片区域, 对应的坐标为:

(1, 1), (1, 2)
(2, 1), (2, 2)

plotNum = 1, 表示的坐标为(1, 1), 即第一行第一列的子图。

plotNum = 2, 表示的坐标为(1, 2), 即第一行第二列的子图。

plotNum = 3, 表示的坐标为(2, 1), 即第二行第一列的子图。

plotNum = 4, 表示的坐标为(2, 2), 即第二行第二列的子图。

  • 实例
import matplotlib.pyplot as plt
import numpy as np

#plot 1:
x = np.array([0, 6])
y = np.array([0, 100])

plt.subplot(2, 2, 1)
plt.plot(x,y)
plt.title("plot 1")

#plot 2:
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])

plt.subplot(2, 2, 2)
plt.plot(x,y)
plt.title("plot 2")

#plot 3:
x = np.array([1, 2, 3, 4])
y = np.array([3, 5, 7, 9])

plt.subplot(2, 2, 3)
plt.plot(x,y)
plt.title("plot 3")

#plot 4:
x = np.array([1, 2, 3, 4])
y = np.array([4, 5, 6, 7])

plt.subplot(2, 2, 4)
plt.plot(x,y)
plt.title("plot 4")

plt.suptitle("RUNOOB subplot Test")
plt.show()

显示结果如下:

img

实例

  • 实例1
import numpy as np 
from matplotlib import pyplot as plt 
x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("Matplotlib demo") 
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y) 
plt.show()

以上实例中,np.arange() 函数创建 x 轴上的值。y 轴上的对应值存储在另一个数组对象 y 中。 这些值使用 matplotlib 软件包的 pyplot 子模块的 plot() 函数绘制。

图形由 show() 函数显示。显示结果如下:

image-20230707140939504

  • 实例2

    要显示圆来代表点,而不是上面示例中的线,请使用 ob 作为 plot() 函数中的格式字符串。

    import numpy as np 
    from matplotlib import pyplot as plt 
    x = np.arange(1,11) 
    y =  2  * x +  5 
    plt.title("Matplotlib demo") 
    plt.xlabel("x axis caption") 
    plt.ylabel("y axis caption") 
    plt.plot(x,y,"ob") 
    plt.show()
    

    显示结果如下:

    image-20230707141134404

  • 实例3

    使用 matplotlib 生成正弦波图。

import numpy as np 
import matplotlib.pyplot as plt 
# 计算正弦曲线上点的 x 和 y 坐标
x = np.arange(0,  3  * np.pi,  0.1) 
y = np.sin(x)
plt.title("sine wave form")  
# 使用 matplotlib 来绘制点
plt.plot(x, y) 
plt.show()

显示结果如下:

image-20230707141417948

  • 实例4:subplot() 函数在同一图中绘制不同的东西

    绘制正弦和余弦值:

    import numpy as np 
    import matplotlib.pyplot as plt 
    x = np.arange(0,  3  * np.pi,  0.1) # 计算正弦和余弦曲线上的点的 x 和 y 坐标
    y_sin = np.sin(x) 
    y_cos = np.cos(x)  
    plt.subplot(2,  1,  1)  #建立subplot网格高为2,宽为1。激活第一个 subplot
    plt.plot(x, y_sin) # 绘制第一个图像
    plt.title('Sine')  
    plt.subplot(2,  1,  2) # 将第二个 subplot 激活,并绘制第二个图像
    plt.plot(x, y_cos) 
    plt.title('Cosine')  
    plt.show()# 展示图像
    

    显示结果如下:

    image-20230707141601678

  • 实例5:bar() pyplot子模块提供bar()函数来生成条形图

    以下实例生成两组 x 和 y 数组的条形图。

    from matplotlib import pyplot as plt 
    x =  [5,8,10] 
    y =  [12,16,6] 
    x2 =  [6,9,11] 
    y2 =  [6,15,7] 
    plt.bar(x, y, align =  'center') 
    plt.bar(x2, y2, color =  'g', align =  'center') 
    plt.title('Bar graph') 
    plt.ylabel('Y axis') 
    plt.xlabel('X axis') 
    plt.show()
    

    显示结果如下:

    image-20230707141746760

  • 实例6:绘制函数在区间 [-3, 3] 上的图像。

    import numpy as np
    import matplotlib.pyplot as plt
    x = np.linspace(-3, 3, 100)   # 创建x轴数据
    y = 9 - x**2                  # 计算对应的y轴坐标
    plt.xlim(-3, 3)                # 设置x轴坐标范围
    plt.xticks(list(range(-3, 4))) # 设置x轴刻度
    plt.ylim(0.0, 9.0)             # 设置y轴坐标范围
    plt.plot(x, y)                 # 绘制图像
    ax = plt.gca()                 # 获取当前轴
    ax.set_aspect('equal')         # 设置纵横比相等
    ax.grid(True)                  # 显示网格
    plt.show()
    

    显示结果如下:

    image-20230707141929240

模拟考题

考题1 单选题

matplotlib模块中提供了丰富的函数,关于函数的功能,下列选项中表达错误的是?( )

A. plot() 函数的功能是绘制图形

B. title()的功能是设置标题内容

C. show()的功能是显示绘图

D. subplot()的功能是图形叠加

答案:D

>

解析:本题考查matplotlib模块中的常用函数功能,其中,subplot()函数的功能是绘制子图,而不是图形叠加。

考题2 单选题

某用户随机生成1000个数字进行排序、计算和绘图,一定不会使用下列哪个模块?( )

A. matplotlib

B. random

C. scipy

D. wordcloud

答案:D

解析:本题考查常用模块的功能,并结合具体问题选择相应模块,较简单。

考题3 单选题

小李编写程序,制作某道选择题的选择比例图,程序如下,生成的比例图是?( )

import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = "SimHei"
opt = [204, 509, 159, 213]
plt.pie(opt, labels=['A', 'B', 'C', 'D'], autopct='%1.2f%%')
plt.title("各选项的选答比例")
plt.show()

A.
image.png

B.
image.png

C.
image.png

D.
image.png

答案:D

解析:根据labels=['A', 'B', 'C', 'D']用于显选项标签,autopct='%1.2f%%'用于显示数值格式,plt.title("各选项的选答比例")用于显示标题。

考题4 单选题

高一(1)班期末4个学科成绩平均分与年级平均分对照图表。用Python程序实现时,①②两行程序代码是?( )

image.png

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df=pd.read_csv("高一(1)班成绩.csv",encoding="gbk")
x=np.array([1,2,3,4])
y=df["年级平均"]
y2=df["班级平均"]
______① ______       
______② ______       
plt.xticks(x+0.15,["Chinese","Math","English","Politlics"])
plt.show()

A.

① plt.plot(x,y,linewidth="3")
② plt.plot(x,y2,linewidth=3")

B.

① plt.bar(x,y,width=0.3)
② plt.bar(x+0.3,y2,width=0.3)

C.

① plt.plot(x,y)
② plt.plot(x,y2)

D.

① plt.scatter(x,y)
② plt.scatter(x,y2)

答案:B

解析:本题绘画的是柱形图,使用bar函数,故选择B

考题5 单选题

关于matplotlib模块中函数的功能,下列描述正确的是?( )

A. bar()函数用于绘制折线图

B. plot()函数用于绘制水平柱形图

C. barh()函数用于绘制垂直柱形图

D. scatter()函数用于绘制散点图

答案:D

解析:bar()函数用于绘制垂直柱形图,plot()函数用于绘制折线形图,barh()函数用于绘制水平柱形图,因此,ABC选项均错;scatter()函数用于绘制散点图,因此,答案为D。

考题6 单选题

绘制sin(x)的图形如图所示,画线处的语句是?( )

image.png

import matplotlib.pyplot  as plt
import numpy  as  np
x = np.linspace(0, 10, 30) 
___________
plt.show()

A. plt.bar(x)

B. plt.scatter(x)

C. plt.plot(x, np.sin(x))

D. plt.scatter(x, np.sin(x))

答案:C

解析:绘制折线图函数是plot,参数必须有2个,第一个参数是x,第二个参数是np.sin(x)。

考题7 单选题

下列关于数据可视化的说法,最准确的是?( )

A. 数据可视化是指静态数据的可视化

B. 决定数据可视化的表现形式的是数据结构

C. 可视化探究具有关联性数据的分布关系可用散点图

D. 可视化展现时间趋势类的数据可用雷达图

答案:C

解析:利用可视化技术,可以将处于不断变化中的数据生成实时变化的可视化图表;不同的数据类型决定了可视化的表现形式;展现时间趋势类的数据可采用柱形图和折线图

考题8 单选题

有如下python程序:

import numpy as np
from matplotlib import pyplot as plt
x=np.arange(-5,5,0.1)
y=np.sin(x)
plt.show()

运行后没有报错但看不到运行结果,原因不可能是?( )

A. 缺少plt.plot()语句

B. 缺少plt.scatter()语句

C. 未正确安装第三方库

D. 电脑卡顿

答案:C

解析:未正确安装第三方库会报类似No module named 'numpy'的错误,既然没有报错,第三方库已安装

考题9 单选题

Matplotlib 是 Python 的绘图库,它不能与 NumPy 一起使用,只能与图形工具包一起使用。( )

答案:错误

解析:本题考查Matplotlib绘图库的基本功能及常用方法。

考题10 单选题

利用matplotlib绘制图形时,语句plt.show()可以省略。( )

答案:错误

解析:必须使用语句plt.show()才能进行显示图形

考题11 单选题

在Python中可以实现可视化效果,绘制数学函数图像一般要用到的库是numpy和matplotlib。( )

答案:正确

解析:NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Matplotlib 可以绘制折线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。

Copyright © all right reserved,powered by Gitbook该文件修订时间: 2023-10-28 16:21:27