## Matplotlib 数据可视化### 简介Matplotlib 是 Python 中最常用的绘图库之一,它提供了一个面向对象的 API,可以用来创建各种类型的静态、交互式和动画图表。Matplotlib 的核心功能是 `pyplot` 模块,它提供了一个类似于 MATLAB 的绘图接口,可以轻松地创建各种基本图表,如线图、散点图、柱状图、饼图等。### 基础绘图#### 线图```python import matplotlib.pyplot as plt import numpy as npx = np.linspace(0, 10, 100) y = np.sin(x)plt.plot(x, y) plt.xlabel("X 轴") plt.ylabel("Y 轴") plt.title("正弦曲线") plt.show() ```这段代码会创建一个简单的正弦曲线图,并添加了标题、X 轴和 Y 轴标签。#### 散点图```python import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10]plt.scatter(x, y) plt.xlabel("X 轴") plt.ylabel("Y 轴") plt.title("散点图") plt.show() ```这段代码会创建一个散点图,每个点对应一个 (x, y) 坐标对。#### 柱状图```python import matplotlib.pyplot as pltcategories = ['A', 'B', 'C', 'D'] values = [10, 20, 30, 40]plt.bar(categories, values) plt.xlabel("类别") plt.ylabel("数值") plt.title("柱状图") plt.show() ```这段代码会创建一个柱状图,每个类别对应一个柱子,柱子的高度代表该类别的数值。#### 饼图```python import matplotlib.pyplot as pltcategories = ['A', 'B', 'C', 'D'] values = [10, 20, 30, 40]plt.pie(values, labels=categories, autopct='%1.1f%%', startangle=90) plt.axis('equal') # 使饼图圆形 plt.title("饼图") plt.show() ```这段代码会创建一个饼图,每个扇形对应一个类别,扇形的面积代表该类别的数值。### 高级绘图#### 子图可以使用 `plt.subplot(nrows, ncols, index)` 函数创建子图。例如,要创建 2x2 的子图,并分别在每个子图中绘制线图、散点图、柱状图和饼图,可以使用以下代码:```python import matplotlib.pyplot as plt import numpy as np# 创建 2x2 的子图 fig, axes = plt.subplots(2, 2)# 子图 1:线图 x = np.linspace(0, 10, 100) y = np.sin(x) axes[0, 0].plot(x, y) axes[0, 0].set_title("线图")# 子图 2:散点图 x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] axes[0, 1].scatter(x, y) axes[0, 1].set_title("散点图")# 子图 3:柱状图 categories = ['A', 'B', 'C', 'D'] values = [10, 20, 30, 40] axes[1, 0].bar(categories, values) axes[1, 0].set_title("柱状图")# 子图 4:饼图 categories = ['A', 'B', 'C', 'D'] values = [10, 20, 30, 40] axes[1, 1].pie(values, labels=categories, autopct='%1.1f%%', startangle=90) axes[1, 1].axis('equal') axes[1, 1].set_title("饼图")plt.tight_layout() # 自动调整子图间距 plt.show() ```#### 自定义颜色和样式可以使用颜色字符串、RGB 三元组、十六进制颜色代码或颜色名称来指定线条颜色。可以使用 `linewidth` 参数来指定线条宽度,使用 `linestyle` 参数来指定线条样式。```python import matplotlib.pyplot as plt import numpy as npx = np.linspace(0, 10, 100) y = np.sin(x)# 红色实线 plt.plot(x, y, color='red', linewidth=2)# 蓝色虚线 plt.plot(x, y + 1, color='blue', linestyle='--')# 绿色点线 plt.plot(x, y + 2, color='green', linestyle='-.')plt.show() ```#### 图表注释可以使用 `plt.annotate()` 函数添加文本注释。```python import matplotlib.pyplot as plt import numpy as npx = np.linspace(0, 10, 100) y = np.sin(x)plt.plot(x, y)# 添加注释 plt.annotate("最大值", xy=(np.pi, 1), xytext=(np.pi + 1, 0.5), arrowprops=dict(arrowstyle="->"))plt.show() ```### 总结Matplotlib 是一个功能强大且灵活的 Python 绘图库,可以用来创建各种类型的静态、交互式和动画图表。了解 Matplotlib 的基本用法可以帮助您更直观地分析和呈现数据。
Matplotlib 数据可视化
简介Matplotlib 是 Python 中最常用的绘图库之一,它提供了一个面向对象的 API,可以用来创建各种类型的静态、交互式和动画图表。Matplotlib 的核心功能是 `pyplot` 模块,它提供了一个类似于 MATLAB 的绘图接口,可以轻松地创建各种基本图表,如线图、散点图、柱状图、饼图等。
基础绘图
线图```python import matplotlib.pyplot as plt import numpy as npx = np.linspace(0, 10, 100) y = np.sin(x)plt.plot(x, y) plt.xlabel("X 轴") plt.ylabel("Y 轴") plt.title("正弦曲线") plt.show() ```这段代码会创建一个简单的正弦曲线图,并添加了标题、X 轴和 Y 轴标签。
散点图```python import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10]plt.scatter(x, y) plt.xlabel("X 轴") plt.ylabel("Y 轴") plt.title("散点图") plt.show() ```这段代码会创建一个散点图,每个点对应一个 (x, y) 坐标对。
柱状图```python import matplotlib.pyplot as pltcategories = ['A', 'B', 'C', 'D'] values = [10, 20, 30, 40]plt.bar(categories, values) plt.xlabel("类别") plt.ylabel("数值") plt.title("柱状图") plt.show() ```这段代码会创建一个柱状图,每个类别对应一个柱子,柱子的高度代表该类别的数值。
饼图```python import matplotlib.pyplot as pltcategories = ['A', 'B', 'C', 'D'] values = [10, 20, 30, 40]plt.pie(values, labels=categories, autopct='%1.1f%%', startangle=90) plt.axis('equal')
使饼图圆形 plt.title("饼图") plt.show() ```这段代码会创建一个饼图,每个扇形对应一个类别,扇形的面积代表该类别的数值。
高级绘图
子图可以使用 `plt.subplot(nrows, ncols, index)` 函数创建子图。例如,要创建 2x2 的子图,并分别在每个子图中绘制线图、散点图、柱状图和饼图,可以使用以下代码:```python import matplotlib.pyplot as plt import numpy as np
创建 2x2 的子图 fig, axes = plt.subplots(2, 2)
子图 1:线图 x = np.linspace(0, 10, 100) y = np.sin(x) axes[0, 0].plot(x, y) axes[0, 0].set_title("线图")
子图 2:散点图 x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] axes[0, 1].scatter(x, y) axes[0, 1].set_title("散点图")
子图 3:柱状图 categories = ['A', 'B', 'C', 'D'] values = [10, 20, 30, 40] axes[1, 0].bar(categories, values) axes[1, 0].set_title("柱状图")
子图 4:饼图 categories = ['A', 'B', 'C', 'D'] values = [10, 20, 30, 40] axes[1, 1].pie(values, labels=categories, autopct='%1.1f%%', startangle=90) axes[1, 1].axis('equal') axes[1, 1].set_title("饼图")plt.tight_layout()
自动调整子图间距 plt.show() ```
自定义颜色和样式可以使用颜色字符串、RGB 三元组、十六进制颜色代码或颜色名称来指定线条颜色。可以使用 `linewidth` 参数来指定线条宽度,使用 `linestyle` 参数来指定线条样式。```python import matplotlib.pyplot as plt import numpy as npx = np.linspace(0, 10, 100) y = np.sin(x)
红色实线 plt.plot(x, y, color='red', linewidth=2)
蓝色虚线 plt.plot(x, y + 1, color='blue', linestyle='--')
绿色点线 plt.plot(x, y + 2, color='green', linestyle='-.')plt.show() ```
图表注释可以使用 `plt.annotate()` 函数添加文本注释。```python import matplotlib.pyplot as plt import numpy as npx = np.linspace(0, 10, 100) y = np.sin(x)plt.plot(x, y)
添加注释 plt.annotate("最大值", xy=(np.pi, 1), xytext=(np.pi + 1, 0.5), arrowprops=dict(arrowstyle="->"))plt.show() ```
总结Matplotlib 是一个功能强大且灵活的 Python 绘图库,可以用来创建各种类型的静态、交互式和动画图表。了解 Matplotlib 的基本用法可以帮助您更直观地分析和呈现数据。