散点图是一种基本的可视化技术,用于展示两个数值变量之间的关系。它们特别适用于识别数据中的模式、趋势和相关性。Matplotlib库提供了一种简单直观的方式来在Python中创建散点图。本文将深入探讨散点图的基础知识以及如何使用Matplotlib生成它们。
散点图是用于展示两个数值变量之间关系的可视化技术。它们对于识别数据模式、趋势和相关性非常有用。Matplotlib库提供了一个简单直观的方式来在Python中创建散点图。让深入了解散点图的基础知识以及如何使用Matplotlib生成它们。
在Matplotlib中创建简单的散点图,可以使用库提供的`scatter`函数。这个函数接受两个数据点数组——一个用于x轴,一个用于y轴——并将它们作为图表上的独立点进行绘制。下面是一个使用Matplotlib和Python创建基本散点图的逐步示例。
import matplotlib.pyplot as plt
# 加载iris数据集
from sklearn.datasets import load_iris
iris = load_iris()
# 提取萼片长度和花瓣长度的数据
sepal_length = iris.data[:, 0]
petal_length = iris.data[:, 1]
# 创建散点图
plt.scatter(sepal_length, petal_length)
# 添加标签、标题和网格
plt.xlabel("萼片长度 (cm)")
plt.ylabel("花瓣长度 (cm)")
plt.title("IRIS数据集中萼片长度与花瓣长度的关系")
plt.grid(True)
# 显示图表
plt.show()
import matplotlib.pyplot as plt
# 加载iris数据集
from sklearn.datasets import load_iris
iris = load_iris()
# 提取萼片长度和花瓣长度的数据
sepal_length = iris.data[:, 0]
petal_length = iris.data[:, 1]
# 根据物种标签改变颜色
plt.scatter(
sepal_length,
petal_length,
c='red', # 根据物种标签映射颜色
s=50, # 调整标记大小
alpha=0.7, # 设置透明度
linewidths=0, # 移除标记周围的边框(可选)
marker='>'
)
# 添加标签、标题和网格
plt.xlabel("萼片长度 (cm)")
plt.ylabel("花瓣长度 (cm)")
plt.title("IRIS数据集中萼片长度与花瓣长度的关系")
plt.grid(True)
# 显示图表
plt.show()
import matplotlib.pyplot as plt
# 加载iris数据集
from sklearn.datasets import load_iris
iris = load_iris()
# 提取萼片长度和花瓣长度的数据
sepal_length = iris.data[:, 0]
petal_length = iris.data[:, 1]
# 物种标签(编码数字)
species = iris.target.astype(int)
# 为不同物种选择颜色映射
cmap = plt.cm.get_cmap("viridis") # 选择喜欢的颜色映射
# 创建带有自定义设置的散点图
plt.scatter(
sepal_length,
petal_length,
c=cmap(species), # 根据物种标签映射颜色
s=50, # 调整标记大小
alpha=0.7, # 设置透明度
linewidths=0, # 移除标记周围的边框(可选)
marker='>'
)
# 添加注释到特定点(可选)
# 选择数据点和注释文本
annotate_indices = [0, 50, 100] # 根据需要修改这些索引
annotate_texts = ["物种 0", "物种 1", "物种 2"]
for i, text in zip(annotate_indices, annotate_texts):
plt.annotate(
text,
xy=(sepal_length[i], petal_length[i]),
xytext=(10, 10), # 偏移量用于放置
textcoords="offset points",
fontsize=8,
arrowprops=dict(facecolor="red", arrowstyle="->"),
)
# 添加一般标题或标签(可选)
plt.title("IRIS数据集中萼片长度与花瓣长度的关系(按物种着色)")
# 添加标签和网格
plt.xlabel("萼片长度 (cm)")
plt.ylabel("花瓣长度 (cm)")
plt.grid(True)
# 物种映射的颜色条(可选)
sm = plt.cm.ScalarMappable(cmap=cmap)
sm.set_array([])
plt.colorbar(sm, label="物种")
# 显示图表
plt.show()
import matplotlib.pyplot as plt
# 样本数据(根据需要修改)
groups = ["组 A", "组 B", "组 C"]
x_data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
y_data = [[4, 6, 7], [2, 3, 5], [8, 5, 7]]
# 创建图表
plt.figure(figsize=(8, 6)) # 如有需要,调整图表大小
# 循环遍历组并绘制数据点
for i, group in enumerate(groups):
plt.scatter(x_data[i], y_data[i], label=group, marker='o', alpha=0.7)
# 添加标签、标题和图例
plt.xlabel("X轴")
plt.ylabel("Y轴")
plt.title("带有多个组的散点图")
plt.legend()
# 网格(可选)
plt.grid(True)
# 显示图表
plt.show()