如果你觉得内容对你有帮助,请在 GitHub 上点个 star 吧!

Matplotlib 输入数据

3.3. Matplotlib 输入数据#

Hide code cell content
import matplotlib.pyplot as plt
import numpy as np

可接收的数据#

Matplotlib 通常会和 pandas 和 NumPy 一起使用,Matplotlib 可绘制的数据大致有:

  1. NumPy 数组(numpy.array)或 numpy.ma.masked_array

  2. 可以转换为 NumPy 数组的对象。如 pandas 数据和 numpy.matrix。也可以使用 numpy.asarray() 方法将其他类型的数据转化为 NumPy 数据。

  3. Key-Value 数据结构:比如字典(dict),结构化的有 Key-Value 结构的 Numpy 数组(Structured NumPy Array)或 pandas DataFrame。Matplotlib 允许通过 data 参数传递这些对象,并传递与 x 和 y 变量对应的字符串。

案例:Key-Value 数据#

输入为 Key-Value 的数据,Value 为用 NumPy 库随机生成 50 个点,并用 scatter() 方法作出散点图.

# 设置随机数种子以确保结果的可复现
np.random.seed(123)
data = {'a': np.arange(50),
        'c': np.random.randint(0, 50, 50),
        'd': np.random.randn(50)}
data['b'] = data['a'] + 10 * np.random.randn(50)
data['d'] = np.abs(data['d']) * 100

fig, ax = plt.subplots(figsize=(5, 2.7), layout='constrained')
ax.scatter('a', 'b', c='c', s='d', data=data)
ax.set_xlabel('entry a')
ax.set_ylabel('entry b')
Text(0, 0.5, 'entry b')
../_images/6bd7d9d25eebe62946769f82cf91d1ed19f7e7ace074ba29061d0434c07a0125.png

具体来说,共有 5 个步骤。

第一步: 构建字典,a 为 0,1,2,…,49 五十个数作为横坐标 x,c 为五十个随机整数作为画图的颜色,d 为五十个随机数作为每个圆点的大小。

第二步: 对 a 做变换得到 b,作为画图纵坐标 y;由于点的大小不应该为负数,因此用 np.abs() 取绝对值。

第三步: 用前述 plt.subplots() 方法生成 figax

第四步: 在 ax 上画点图,写明参数 x='a', y='b', c='c', s='d',data=data,c(color) 指明颜色,s(size) 指明大小,data 来自于我们构建的字典,因此参数中使用的时候,相当于使用字典的 key 字符串,需要有引号。

第五步: 用 set_xlabel()set_ylabel() 方法为 x 轴和 y 轴添加文本标签,也就是轴标题。