python常用库学习-Matplotlib使用

文章目录

      • [安装 Matplotlib](#安装 Matplotlib)
      • 导入库
      • 基本示例
        • [1. 绘制简单的线图](#1. 绘制简单的线图)
        • [2. 散点图](#2. 散点图)
        • [3. 柱状图](#3. 柱状图)
        • [4. 直方图](#4. 直方图)
        • [5. 子图](#5. 子图)
      • 更多高级功能
        • [1. 自定义样式](#1. 自定义样式)
        • [2. 文本和注释](#2. 文本和注释)
        • [3. 保存图形](#3. 保存图形)
      • [示例:使用 Matplotlib 绘制多个图表](#示例:使用 Matplotlib 绘制多个图表)
        • [示例 1: 绘制多个线图](#示例 1: 绘制多个线图)
        • [示例 2: 绘制散点图和直方图](#示例 2: 绘制散点图和直方图)
      • 参考文献

Matplotlib 是 Python 中一个非常流行的绘图库,它提供了大量的图形绘制功能,可以创建各种静态、动态和交互式的图表。下面是一些使用 Matplotlib 的基本示例和说明。

安装 Matplotlib

如果你还没有安装 Matplotlib,可以通过 pip 安装:

bash 复制代码
pip install matplotlib

导入库

python 复制代码
import matplotlib.pyplot as plt

基本示例

1. 绘制简单的线图
python 复制代码
import numpy as np
import matplotlib.pyplot as plt

# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 创建图形
plt.plot(x, y, label='sin(x)')

# 添加标题和标签
plt.title('Sine Wave')
plt.xlabel('x')
plt.ylabel('sin(x)')

# 添加图例
plt.legend()

# 显示图形
plt.show()
2. 散点图
python 复制代码
import numpy as np
import matplotlib.pyplot as plt

# 创建数据
x = np.random.randn(100)
y = np.random.randn(100)

# 创建图形
plt.scatter(x, y, color='blue', alpha=0.5)

# 添加标题和标签
plt.title('Scatter Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')

# 显示图形
plt.show()
3. 柱状图
python 复制代码
import matplotlib.pyplot as plt

# 创建数据
labels = ['A', 'B', 'C']
values = [3, 7, 2]
# 创建图形
plt.bar(labels, values)

# 添加标题和标签
plt.title('Bar Chart')
plt.xlabel('Category')
plt.ylabel('Value')

# 显示图形
plt.show()
4. 直方图
python 复制代码
import numpy as np
import matplotlib.pyplot as plt

# 创建数据
data = np.random.randn(1000)

# 创建图形
plt.hist(data, bins=20, edgecolor='black')

# 添加标题和标签
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')

# 显示图形
plt.show()
5. 子图
python 复制代码
import numpy as np
import matplotlib.pyplot as plt

# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建图形
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))

# 第一个子图
ax1.plot(x, y1)
ax1.set_title('Sine Wave')
ax1.set_xlabel('x')
ax1.set_ylabel('sin(x)')

# 第二个子图
ax2.plot(x, y2)
ax2.set_title('Cosine Wave')
ax2.set_xlabel('x')
ax2.set_ylabel('cos(x)')

# 显示图形
plt.show()

更多高级功能

1. 自定义样式
python 复制代码
import matplotlib.pyplot as plt

# 设置样式
plt.style.use('seaborn')

# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 创建图形
plt.plot(x, y)

# 显示图形
plt.show()
2. 文本和注释
python 复制代码
import numpy as np
import matplotlib.pyplot as plt

# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 创建图形
plt.plot(x, y)

# 添加文本注释
plt.text(5, 0.5, r'$\sin(x)$', fontsize=14, color='red')

# 添加箭头注释
plt.annotate('Maximum',
             xy=(np.pi, 1), xycoords='data',
             xytext=(+10, +30), textcoords='offset points',
             arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

# 显示图形
plt.show()
3. 保存图形
python 复制代码
import numpy as np
import matplotlib.pyplot as plt

# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 创建图形
plt.plot(x, y)

# 保存图形
plt.savefig('sine_wave.png')

# 显示图形
plt.show()

示例:使用 Matplotlib 绘制多个图表

示例 1: 绘制多个线图
python 复制代码
import numpy as np
import matplotlib.pyplot as plt

# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建图形
plt.figure(figsize=(10, 5))

# 第一个线图
plt.subplot(1, 2, 1)
plt.plot(x, y1)
plt.title('Sine Wave')
plt.xlabel('x')
plt.ylabel('sin(x)')

# 第二个线图
plt.subplot(1, 2, 2)
plt.plot(x, y2)
plt.title('Cosine Wave')
plt.xlabel('x')
plt.ylabel('cos(x)')

# 显示图形
plt.show()
示例 2: 绘制散点图和直方图
python 复制代码
import numpy as np
import matplotlib.pyplot as plt

# 创建数据
x = np.random.randn(1000)

# 创建图形
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))

# 散点图
ax1.scatter(x, np.random.randn(1000), alpha=0.5)
ax1.set_title('Scatter Plot')
ax1.set_xlabel('X-axis')
ax1.set_ylabel('Y-axis')

# 直方图
ax2.hist(x, bins=20, edgecolor='black')
ax2.set_title('Histogram')
ax2.set_xlabel('Value')
ax2.set_ylabel('Frequency')

# 显示图形
plt.show()

以上就是使用 Matplotlib 进行数据可视化的基础介绍。Matplotlib 提供了许多其他高级功能,如三维图表、等高线图、误差线图等。如果需要绘制更复杂, 更全面的图形, 请参考文章末尾官网相关地址。

参考文献

官网地址
官方样例地址

相关推荐
数据智能老司机4 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机5 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机5 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机5 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i6 小时前
drf初步梳理
python·django
每日AI新事件6 小时前
python的异步函数
python
这里有鱼汤7 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook16 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室16 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三18 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试