NumPy - Matplotlib
NumPy 和 Matplotlib
NumPy 是一个用于数值计算的 Python 库,支持数组、数学函数以及对大型数据集的高效操作。
Matplotlib 是一个用于创建静态、交互式和动画可视化效果(例如绘图和图表)的 Python 库。
它们经常一起使用,因为 NumPy 生成和处理数据数组,而 Matplotlib 对其进行可视化。例如,您可以使用 NumPy 创建数据点,然后使用 Matplotlib 将其绘制为图形。
什么是 Matplotlib?
Matplotlib 是一个用于创建高质量绘图和图表的 Python 库。它高度可定制,可以生成各种类型的图表,例如线图、散点图、条形图和直方图。
Matplotlib 与 NumPy 无缝协作,让您可以轻松地可视化数值数据数组或在绘制结果之前执行操作。
设置 Matplotlib
在开始使用 Matplotlib 之前,请确保已安装该库。您可以使用 pip 安装它,如下所示 -
# 安装 Matplotlib !pip install matplotlib
安装完成后,您可以将其与 NumPy 一起导入,开始创建可视化效果,如下所示 -
import numpy as np import matplotlib.pyplot as plt
现在库已经准备就绪,让我们深入了解使用 Matplotlib 和 NumPy 可以创建的各种可视化效果。
线图
线图是最简单、最常用的可视化效果之一。它用于显示数据点之间的趋势或关系。
示例
在以下示例中,我们将使用 Matplotlib 和 NumPy 创建线图 -
import numpy as np
import matplotlib.pyplot as plt
# 使用 NumPy 生成数据
# 100 个介于 0 到 10 之间的等距点
x = np.linspace(0, 10, 100)
# 计算 x 的正弦值
y = np.sin(x)
# 创建线图
plt.plot(x, y, label='sin(x)', color='blue', linestyle='--')
plt.title('线图sin(x)')
plt.xlabel('X 轴')
plt.ylabel('Y 轴')
plt.legend()
plt.grid(True)
plt.show()
我们可以看到一个线图,其中显示了一个正弦波,并带有标记轴、图例和网格,以便更好地进行可视化 -
散点图
散点图用于通过显示单个数据点来显示两个变量之间的关系。它们对于识别数据中的模式、相关性或异常值非常有用。
示例
以下是创建散点图的示例,该散点图以透明绿色显示随机点 -
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
x = np.random.rand(50)
y = np.random.rand(50)
# 创建散点图
plt.scatter(x, y, color='green', alpha=0.7)
plt.title('随机点散点图')
plt.xlabel('X 轴')
plt.ylabel('Y 轴')
plt.show()
我们得到如下所示的输出 -
条形图
条形图用于比较不同的类别或组。它们使用矩形条形显示数据,其中高度代表值。
示例
以下是创建条形图的示例,该图使用橙色条形显示每个类别的值 -
import numpy as np
import matplotlib.pyplot as plt
# 条形图数据
categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]
# 创建条形图
plt.bar(categories, values, color='orange')
plt.title('条形图示例')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.show()
获得的输出如下所示−
直方图
直方图用于可视化数据集的频率分布。它们将数据划分为区间(bin),并显示每个区间内数据点的数量。
示例
以下示例创建了一个直方图,用于显示随机生成数据的频率分布 -
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
# 从正态分布中抽取 1000 个样本
data = np.random.randn(1000)
# 创建直方图
plt.hist(data, bins=30, color='purple', alpha=0.8)
plt.title('随机数据直方图')
plt.xlabel('Bins')
plt.ylabel('Frequency')
plt.show()
执行上述代码后,我们得到以下输出 −
饼图
饼图用于将数据表示为圆形的切片,以显示比例或百分比。虽然它们并不总是用于精确比较的最佳方式,但在特定用例中,它们在视觉上很有吸引力。
示例
以下是创建饼图的示例,该饼图以百分比形式显示每种编程语言的比例 -
import numpy as np
import matplotlib.pyplot as plt
# 饼图数据
labels = ['Python', 'Java', 'C++', 'Ruby']
sizes = [50, 30, 15, 5]
# 创建饼图
plt.pie(sizes, label=labels, autopct='%1.1f%%', startangle=140)
plt.title('饼图示例')
plt.show()
生成的结果如下−
自定义 Matplotlib 可视化
Matplotlib 提供了丰富的选项来自定义您的可视化效果。您可以调整颜色、线型、标记、字体等。
示例
以下是使用不同的线型、颜色和标记创建自定义正弦波和余弦波图的示例 -
import numpy as np
import matplotlib.pyplot as plt
# 自定义线图
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)', color='red', linewidth=2, marker='o')
plt.plot(x, y2, label='cos(x)', color='blue', linestyle='dotted')
plt.title('自定义线图')
plt.xlabel('X 轴')
plt.ylabel('Y 轴')
plt.legend()
plt.grid(True, linestyle='--', color='gray', alpha=0.6)
plt.show()
我们得到如下所示的输出 −
结合使用 NumPy 和 Matplotlib
结合使用 NumPy 和 Matplotlib 可以增强您的分析和可视化工作流程。 NumPy 可用于预处理和操作数据,而 Matplotlib 可用于可视化结果。
例如,您可以使用 NumPy 生成数据转换或统计分析,然后使用 Matplotlib 进行可视化。
示例
以下是创建表示二次函数的抛物线图的示例 -
import numpy as np
import matplotlib.pyplot as plt
# 生成并可视化二次函数
x = np.linspace(-10, 10, 200)
y = x**2 - 5*x + 6
plt.plot(x, y, label='y = x^2 - 5x + 6', color='magenta')
plt.title('二次函数可视化')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.legend()
plt.show()
得到的输出如下所示 −

