Matplotlib绘制图的常用类型
plot(x,y)
plot(x, y)
函数用于绘制折线图。折线图是一种用来展示连续数据之间关系的图表类型,适用于表示数据随着一个或多个变量的变化而变化的情况。
具体来说,plot(x, y)
函数接受两个参数:
x
:表示X轴上的数据点的值,通常是一个数组或列表,表示自变量的取值。y
:表示Y轴上的数据点的值,也是一个数组或列表,表示因变量随自变量变化的取值。
折线图会将这些数据点连接起来,形成一条或多条线,以展示数据的趋势或变化情况。以下是一些常见的折线图样式及其特点:
- 单条折线图:用于表示单一变量的变化趋势。可以通过添加数据标记点来强调关键数据点。
- 多条折线图:可以在同一张图上绘制多条折线,用于比较多个变量之间的趋势。每条折线可以使用不同的颜色或线型进行区分。
- 带标记点的折线图:通过在折线上添加标记点,可以更清晰地表示数据的取值,尤其在数据变化明显的位置。
- 平滑曲线折线图:使用平滑曲线(如样条曲线或平滑的多项式拟合曲线)来连接数据点,以平滑显示数据的变化趋势,避免过多的波动。
- 面积图折线图:可以通过在折线下方填充颜色,展示数据随时间的累积变化。常用于表示累积数据,如总收入或总销量。
- 双坐标轴折线图:在同一张图上绘制两条折线,分别使用左右两个不同的Y轴刻度,用于表示不同量纲或变化幅度较大的数据。
例如:
import matplotlib.pyplot as plt
import numpy as np
plt.style.use('_mpl-gallery')
# 生成数据
x = np.linspace(0, 10, 100)
y = 4 + 2 * np.sin(2 * x)
# plot
fig, ax = plt.subplots()
ax.plot(x, y, linewidth=2.0)
ax.set(xlim=(0, 8), xticks=np.arange(1, 8),
ylim=(0, 8), yticks=np.arange(1, 8))
plt.show()
scatter(x, y)
scatter(x, y)
函数用于绘制散点图。散点图是一种用于展示两个变量之间关系的图表类型,每个数据点由两个数值(X轴和Y轴上的值)表示,以点的形式在图表上进行表示。
scatter(x, y)
函数接受两个参数:
x
:表示X轴上的数据点的值,通常是一个数组或列表,表示自变量的取值。y
:表示Y轴上的数据点的值,也是一个数组或列表,表示因变量的取值。
散点图通过在坐标系中放置单个数据点来展示两个变量之间的关系。以下是一些散点图的特点和用途:
- 相关性检测:通过绘制散点图,可以观察两个变量之间的关系,判断它们之间是否存在线性相关性、正相关还是负相关。
- 分布情况:散点图可以用来展示数据的分布情况,特别是在两个维度上都有变化的情况下。
- 聚类分析:当数据点在图上聚集成群时,散点图可以帮助识别是否存在多个聚类或群集。
- 异常值识别:通过观察散点图,可以识别出位于数据集中的异常值或离群点。
- 多变量关系:散点图也可以用于展示多个变量之间的关系,通过使用不同的颜色、大小或形状来表示不同的变量。
比如生成一个显示汽车速度与制动距离关系的散点图,其中每个数据点表示一个速度-制动距离的对应关系:
import matplotlib.pyplot as plt
# 设置全局字体为支持中文的字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定微软雅黑或其他中文字体
# 示例数据:汽车速度与制动距离的关系
speed = [4, 7, 11, 15, 18, 20, 22, 24, 26, 29]
brake_distance = [2, 4, 7, 10, 12, 15, 18, 22, 25, 28]
# 创建散点图
plt.figure(figsize=(8, 6)) # 设置图像大小
plt.scatter(speed, brake_distance, color='blue', marker='o', label='数据点') # 绘制散点图
plt.title('汽车速度与制动距离关系') # 添加标题
plt.xlabel('速度 (mph)') # 添加X轴标签
plt.ylabel('制动距离 (ft)') # 添加Y轴标签
plt.legend() # 显示图例
plt.grid(True) # 添加网格线
plt.show() # 显示图像
在使用scatter(x, y)
函数时,还可以通过设置参数来定制散点图的外观,如点的大小、颜色、标记形状等,以便更好地传达数据的信息。
例如生成一个具有随机数据点、自定义样式和点大小、颜色的散点图:
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
np.random.seed(3)
x = 4 + np.random.normal(0, 2, 24) # 生成24个随机数,以4为中心,标准差为2
y = 4 + np.random.normal(0, 2, len(x)) # 生成与x相同数量的随机数,以4为中心,标准差为2
# 设置点的大小和颜色
sizes = np.random.uniform(15, 80, len(x)) # 生成在15和80之间的随机数作为点的大小
colors = np.random.uniform(15, 80, len(x)) # 生成在15和80之间的随机数作为颜色
# 绘制散点图
fig, ax = plt.subplots() # 创建一个图像和坐标轴的组合
ax.scatter(x, y, s=sizes, c=colors, vmin=0, vmax=100) # 绘制散点图,设置点的大小和颜色的范围
# 设置坐标轴范围和刻度
ax.set(xlim=(0, 8), xticks=np.arange(1, 8),
ylim=(0, 8), yticks=np.arange(1, 8))
plt.show() # 显示图像
bar(x, height)
bar(x, height)
函数用于绘制条形图(柱状图)。条形图是一种常用的数据可视化方式,用于展示不同类别或组之间的比较。每个条形的高度表示与该类别或组相关联的数值。
bar(x, height)
函数接受两个主要参数:
x
:表示条形的位置,通常是一个数组或列表,表示每个条形的位置。height
:表示每个条形的高度,也是一个数组或列表,表示每个条形的数值。
以下是一些关于bar(x, height)
函数的特点和用途:
- 分类比较