杰瑞科技汇

Python plot 示例有哪些常见类型?

下面我将从最简单的例子开始,逐步展示如何使用 .plot() 创建不同类型的图表,并解释其常用参数。

Python plot 示例有哪些常见类型?-图1
(图片来源网络,侵删)

基础入门:绘制折线图

这是 .plot() 最基本、最直接的使用方式。

场景:绘制一组简单的数据点,观察其趋势。

# 1. 导入必要的库
import matplotlib.pyplot as plt
import numpy as np # 使用 numpy 生成数据,非常方便
# 2. 准备数据
x = np.linspace(0, 10, 100) # 从 0 到 10,生成 100 个均匀分布的点
y = np.sin(x)               # 计算 x 的正弦值,作为 y 坐标
# 3. 绘制图形
plt.plot(x, y) # 最核心的一行代码:传入 x 和 y 数据
# 4. 显示图形
plt.show()

代码解释

  1. import matplotlib.pyplot as plt: 这是 Matplotlib 的标准导入惯例,plt 是我们后续所有操作的简称。
  2. x = np.linspace(...): 创建了一个包含 100 个点的数组,这些点在 0 到 10 之间均匀分布。
  3. y = np.sin(x): 对 x 数组中的每一个点计算正弦值,得到 y 数组。
  4. plt.plot(x, y): Matplotlib 会自动将 xy 数组中的点连接起来,形成一条平滑的曲线(因为点足够密集)。
  5. plt.show(): 将图形在窗口中显示出来,在 Jupyter Notebook 或类似环境中,这一步通常可以省略,图形会自动显示。

添加图表元素,使其更具可读性

一个完整的图表通常需要标题、坐标轴标签和图例。

Python plot 示例有哪些常见类型?-图2
(图片来源网络,侵删)
import matplotlib.pyplot as plt
import numpy as np
# 准备数据
x = np.linspace(0, 10, 100)
y_sin = np.sin(x)
y_cos = np.cos(x)
# 创建图形和坐标轴
plt.figure(figsize=(8, 5)) # 可选:设置图形大小
# 绘制两条曲线
plt.plot(x, y_sin, label='Sine Wave') # 添加 label 参数,用于图例
plt.plot(x, y_cos, label='Cosine Wave')
# 添加图表元素"Sine and Cosine Waves")  # 添加标题
plt.xlabel("X-axis (radians)")      # 添加 X 轴标签
plt.ylabel("Y-axis (value)")        # 添加 Y 轴标签
plt.legend()                        # 显示图例,会自动使用 label 的内容
plt.grid(True)                      # 显示网格线
# 显示图形
plt.show()

新增功能

  • plt.figure(figsize=(8, 5)): 创建一个新的图形窗口,并设置其大小为 8x5 英寸。
  • label='...': 为每条线指定一个名称,这样 plt.legend() 就能识别它们。
  • plt.title(), plt.xlabel(), plt.ylabel(): 分别设置图表标题、X轴和Y轴的标签。
  • plt.legend(): 根据之前设置的 label 显示图例。
  • plt.grid(True): 添加背景网格,方便读数。

绘制不同类型的图表(通过修改参数)

.plot() 函数非常灵活,通过修改参数可以绘制不同类型的图表。

a) 散点图

只需要将 plot 函数的第一个参数改为 'o',表示用圆形标记点。

import matplotlib.pyplot as plt
import numpy as np
# 准备数据
x = np.random.rand(50) # 生成 50 个 0 到 1 之间的随机数
y = np.random.rand(50)
# 绘制散点图
plt.plot(x, y, 'o') # 'o' 表示用圆形点来绘制
和标签"Scatter Plot")
plt.xlabel("X values")
plt.ylabel("Y values")
plt.show()

b) 柱状图

使用 bar 函数(注意,这里是 plt.bar(),而不是 plt.plot(),但它们都属于 pyplot 的绘图家族)。

Python plot 示例有哪些常见类型?-图3
(图片来源网络,侵删)
import matplotlib.pyplot as plt
# 准备数据
categories = ['A', 'B', 'C', 'D']
values = [15, 30, 45, 10]
# 绘制柱状图
plt.bar(categories, values)
和标签"Bar Chart")
plt.xlabel("Category")
plt.ylabel("Value")
plt.show()

c) 直方图

用于展示数据的分布情况,使用 hist 函数。

import matplotlib.pyplot as plt
import numpy as np
# 准备数据:生成 1000 个符合标准正态分布的随机数
data = np.random.randn(1000)
# 绘制直方图
plt.hist(data, bins=30) # bins 参数控制将数据分成多少个区间
和标签"Histogram of a Normal Distribution")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()

.plot() 的常用参数详解

参数 描述 示例
x, y 数据,可以是列表、NumPy 数组等。 plt.plot(x, y)
fmt 格式化字符串,可以同时设置颜色、标记点和线型。 plt.plot(x, y, 'ro-') (红色,圆形点,实线)
colorc 设置线条或标记点的颜色,可以是颜色名称、十六进制码等。 plt.plot(x, y, color='green')
linestylels 设置线型。, , , 。 plt.plot(x, y, linestyle='dashed')
linewidthlw 设置线条宽度。 plt.plot(x, y, linewidth=2.5)
marker 设置标记点的样式。'o', 's', '^', 。 plt.plot(x, y, marker='s')
markersizems 设置标记点的大小。 plt.plot(x, y, markersize=8)
alpha 设置透明度(0 到 1 之间)。 plt.plot(x, y, alpha=0.5)
label 为数据序列设置标签,用于图例。 plt.plot(x, y, label='My Data')

综合示例:使用参数自定义样式

import matplotlib.pyplot as plt
import numpy as np
# 准备数据
x = np.arange(0, 10, 1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
y = x ** 2
# 使用 fmt 字符串 'g^--':
# g: 绿色
# ^: 三角形标记点
# --: 虚线
plt.plot(x, y, 'g^--', 
         linewidth=2, 
         markersize=10, 
         label='y = x²')
# 添加图表元素"Customized Plot with Parameters")
plt.xlabel("X")
plt.ylabel("Y = X²")
plt.legend()
plt.grid(True)
plt.show()

在一个图中绘制多个子图

有时候我们需要在一个大窗口中放置多个小图表,这可以使用 plt.subplot() 实现。

import matplotlib.pyplot as plt
import numpy as np
# 准备数据
x = np.linspace(0, 10, 100)
# 创建一个 2x1 的子图布局 (2行, 1列)
# 激活第一个子图 (位于第1行第1列)
plt.subplot(2, 1, 1)
plt.plot(x, np.sin(x))'Sine Wave')
plt.grid(True)
# 激活第二个子图 (位于第2行第1列)
plt.subplot(2, 1, 2)
plt.plot(x, np.cos(x))'Cosine Wave')
plt.grid(True)
# 调整子图间距,防止重叠
plt.tight_layout()
plt.show()

代码解释

  • plt.subplot(行数, 列数, 索引): plt.subplot(2, 1, 1) 表示创建一个 2 行 1 列的网格,并选择第一个(左上角)的子图进行操作。
  • 之后所有的 plt.plot(), plt.title() 等命令都会作用于当前被激活的子图。
  • plt.tight_layout(): 一个非常有用的函数,它会自动调整子图参数,使之填充整个图像区域,避免标签等元素重叠。

.plot() 是 Matplotlib 的基石,掌握它的使用是数据可视化的第一步,核心流程可以总结为:

  1. 准备数据 (通常是 NumPy 数组或列表)。
  2. 调用 plt.plot(x, y, ...) 绘制基本图形。
  3. 使用 plt.title(), plt.xlabel(), plt.ylabel() 等函数 添加标签和标题。
  4. 使用 plt.legend() 显示图例。
  5. 调用 plt.show() 显示最终图形。

希望这些例子能帮助你理解和使用 Python 的 .plot() 函数!

分享:
扫描分享到社交APP
上一篇
下一篇