Python中matplotlib库散点图可视化指南

散点图是一种基本的可视化技术,用于展示两个数值变量之间的关系。它们特别适用于识别数据中的模式、趋势和相关性。Matplotlib库提供了一种简单直观的方式来在Python中创建散点图。本文将深入探讨散点图的基础知识以及如何使用Matplotlib生成它们。

目录

  • 理解散点图的基础知识
  • 创建简单的散点图
  • 使用IRIS数据集创建散点图
  • 自定义散点图标记和颜色
  • 在散点图中添加注释和文本
  • 处理散点图中的多个组

理解散点图的基础知识

散点图是用于展示两个数值变量之间关系的可视化技术。它们对于识别数据模式、趋势和相关性非常有用。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()
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485