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()
得到的输出如下所示 −
