> 技术文档 > Python编程进阶知识之第五课处理数据(matplotlib)

Python编程进阶知识之第五课处理数据(matplotlib)


简介

        matplotlib 是 Python 中最流行的数据可视化库之一,它可以创建各种高质量的图表。无论是简单的折线图,还是复杂的 3D 图形,matplotlib 都能轻松应对。它提供了类似 MATLAB 的绘图接口,使得用户可以非常方便地进行图表的创建和定制。

 matplotlib 的一些主要特点和功能:

        丰富的绘图功能: matplotlib 提供了多种绘图函数,可以绘制各种类型的图表,包括线图、散点图、柱状图、饼图、等高线图等。

        自定义设置: 用户可以对图表的各种属性进行自定义设置,如颜色、线型、标记、标题、坐标轴标签等。

        交互式绘图: matplotlib 支持交互式绘图,用户可以使用鼠标对图表进行缩放、平移等操作。

        多种输出格式: 用户可以将绘制的图表保存为多种格式的文件,包括 PNG、PDF、SVG 等。

        与 NumPy 和 Pandas 集成: matplotlib 可以与 NumPy 和 Pandas 库无缝集成,方便用户处理和可视化数据。

        支持多种绘图风格: matplotlib 提供了多种预定义的绘图风格,用户可以根据需要选择合适的风格。

        关于 matplotlib了解一点基础的画图方法就行,它就是为我们后面学习机器学习和深度学习提供一个简单的绘图工具

1.安装matplotlib

pip install matplotlib 

        后面也可以加上清华镜像园下载更快

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

2.matplotlib 绘制折线图

折线图是最基本的图表类型之一,用于展示数据随时间或其他连续变量的变化趋势。

import matplotlib.pyplot as pltimport numpy as np# 准备数据x = np.linspace(0, 10, 100) # 生成0到10之间的100个均匀分布的点y = np.sin(x) # 计算正弦值# 创建图表和子图plt.figure(figsize=(8, 4)) # 创建一个大小为8x4英寸的图表# 绘制图形plt.plot(x, y, label=\'sin(x)\') # 绘制折线图# 设置图表属性plt.title(\'Sin Function\') # 设置标题plt.xlabel(\'x\') # 设置x轴标签plt.ylabel(\'y\') # 设置y轴标签plt.grid(True) # 显示网格线plt.legend() # 显示图例# 显示图表plt.show()

3. matplotlib 绘制散点图

散点图用于展示两个变量之间的关系,每个数据点用一个点表示。

import matplotlib.pyplot as pltimport numpy as np# 准备数据x = np.random.rand(100) # 生成100个0到1之间的随机数y = np.random.rand(100)colors = np.random.rand(100) # 随机颜色sizes = 1000 * np.random.rand(100) # 随机大小# 绘制散点图plt.figure(figsize=(8, 6))plt.scatter(x, y, c=colors, s=sizes, alpha=0.5) # alpha表示透明度# 设置图表属性plt.title(\'Scatter Plot\')plt.xlabel(\'X\')plt.ylabel(\'Y\')plt.colorbar() # 显示颜色条plt.show()

4.matplotlib 绘制柱状图

柱状图用于比较不同类别之间的数据差异。

import matplotlib.pyplot as pltimport numpy as np# 准备数据categories = [\'A\', \'B\', \'C\', \'D\', \'E\']values = [25, 40, 30, 20, 45]# 绘制柱状图plt.figure(figsize=(10, 6))plt.bar(categories, values, color=\'skyblue\')# 设置图表属性plt.title(\'Bar Chart\')plt.xlabel(\'Categories\')plt.ylabel(\'Values\')plt.show()

5.matplotlib 绘制饼图

饼图用于展示数据的比例关系。

import matplotlib.pyplot as plt# 准备数据labels = [\'A\', \'B\', \'C\', \'D\']sizes = [15, 30, 45, 10]colors = [\'gold\', \'yellowgreen\', \'lightcoral\', \'lightskyblue\']explode = (0, 0.1, 0, 0) # 突出显示第二个部分# 绘制饼图plt.figure(figsize=(8, 8))plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct=\'%1.1f%%\', shadow=True, startangle=90)# 设置图表属性plt.axis(\'equal\') # 使饼图为正圆形plt.title(\'Pie Chart\')plt.show()

6.matplotlib 绘制直方图

直方图用于展示数据的分布情况。

import matplotlib.pyplot as pltimport numpy as np# 准备数据data = np.random.randn(1000) # 生成1000个符合标准正态分布的随机数# 绘制直方图plt.figure(figsize=(10, 6))plt.hist(data, bins=30, alpha=0.7, color=\'skyblue\') # bins表示直方图的箱数# 设置图表属性plt.title(\'Histogram\')plt.xlabel(\'Value\')plt.ylabel(\'Frequency\')plt.show()

7.matplotlib 绘制多子图布局

matplotlib 允许在一个图表中创建多个子图,便于比较不同的数据。

使用 subplot 函数

import matplotlib.pyplot as pltimport numpy as np# 生成0到10之间的100个均匀分布的点作为x轴数据x = np.linspace(0, 10, 100)# 计算不同的函数值作为y轴数据y1 = np.sin(x) # 正弦函数y2 = np.cos(x) # 余弦函数y3 = np.tan(x) # 正切函数y4 = np.sin(x ** 2) # x平方的正弦函数y5 = np.arccos(x) # 反余弦函数y6 = np.arctan(x) # 反正切函数# 创建一个2行3列的子图布局,图形尺寸为10x8英寸fig, axs = plt.subplots(2, 3, figsize=(10, 8))# 在第一行第一列的子图中绘制正弦函数,颜色为红色axs[0, 0].plot(x, y1, \'r\')axs[0, 0].set_title(\'sin(x)\')# 在第一行第二列的子图中绘制余弦函数,颜色为绿色axs[0, 1].plot(x, y2, \'g\')axs[0, 1].set_title(\'cos(x)\')# 在第二行第一列的子图中绘制正切函数,颜色为蓝色axs[1, 0].plot(x, y3, \'b\')axs[1, 0].set_title(\'tan(x)\')# 在第二行第二列的子图中绘制x平方的正弦函数,颜色为洋红色axs[1, 1].plot(x, y4, \'m\')axs[1, 1].set_title(\'sin(x^2)\')# 在第一行第三列的子图中绘制反余弦函数,颜色为红色axs[0, 2].plot(x, y5, \'r\')axs[0, 2].set_title(\'arccos\')# 在第二行第三列的子图中绘制反正切函数,颜色为红色axs[1, 2].plot(x, y6, \'r\')axs[1, 2].set_title(\'arctan\')# 显示图形plt.show()