Python散点图(Scatter Plot):数据探索的“第一张图表”

在数据可视化领域,散点图是一种强大而灵活的工具,它能够帮助我们直观地理解和探索数据集中变量之间的关系。本文将深入探讨散点图的核心原理、应用场景以及如何使用Python进行高效绘制。

后续几篇将介绍高级技巧、复杂应用场景。
Python散点图(Scatter Plot):高阶分析、散点图矩阵、三维散点图及综合应用
Python散点图多变量数据可视化:金融、市场、医学等应用的深度解析
Python散点密度图:数据可视化的强大工具

一、散点图的核心原理

散点图通过在二维坐标系中绘制数据点来展示两个变量之间的关系。每个点代表一个观测值,其横纵坐标分别对应两个变量的取值。通过观察这些点的分布模式,我们可以得出变量之间是否存在相关性、是否存在异常值以及数据的分布形态等重要信息。
散点图通过在笛卡尔坐标系中绘制点集,展示两个变量的数值关系。每个点的位置由变量值决定,常用于发现变量间的相关性(正相关、负相关或无关联)、是否存在异常值、数据分布模式(如线性、非

<think> 根据用户的问题,用户想要了解如何使用Pythonmatplotlib库中的scatter函数将两组数据绘制在同一个散点图中。结合之前的引用内容,我们可以通过以下步骤实现: 步骤: 1. 导入必要的库(matplotlib.pyplot) 2. 准备两组数据,每组数据包含x坐标和y坐标(假设第一组数据为x1, y1;第二组数据为x2, y2) 3. 使用scatter函数分别绘制两组数据,可以通过设置不同的颜色(c参数)或标记(marker参数)来区分两组数据 4. 添加必要的图表元素(如标题、坐标轴标签、图例等) 5. 显示图表 示例代码: ```python import matplotlib.pyplot as plt # 第一组数据 x1 = [1, 2, 3, 4, 5] y1 = [2, 3, 5, 7, 11] # 第二组数据 x2 = [1, 2, 3, 4, 5] y2 = [1, 4, 9, 16, 25] # 创建散点图 plt.scatter(x1, y1, c='blue', label='Group 1') # 第一组用蓝色 plt.scatter(x2, y2, c='red', label='Group 2') # 第二组用红色 # 添加标题和标签 plt.title('Scatter Plot of Two Groups') plt.xlabel('X-axis') plt.ylabel('Y-axis') # 添加图例 plt.legend() # 显示图表 plt.show() ``` 在这个示例中,我们分别调用了两次`scatter`函数,每次传入一组数据,并设置不同的颜色和标签。然后通过`plt.legend()`显示图例,这样就可以在同一个图中区分两组数据。 此外,还可以通过设置不同的标记样式(marker参数)来区分,例如: ```python plt.scatter(x1, y1, c='blue', marker='o', label='Group 1') # 圆形 plt.scatter(x2, y2, c='red', marker='^', label='Group 2') # 三角形 ``` 这样,两组数据就会以不同的形状显示在同一个散点图中。 引用说明: - 引用[1]和[3]中提到了scatter函数的基本用法和参数,包括x, y, c, label等,这些参数在示例中都有使用。 - 引用[2]中提到了绘制单个点的方法,但这里我们扩展到了多个点并组合在一起。 注意:确保在绘制完所有数据点之后再调用`plt.legend()`和`plt.show()`。 </think>在同一个散点图中绘制两组数据数据可视化的常见需求,使用matplotlib的`scatter()`函数可以轻松实现。以下是详细步骤和示例代码: ### 绘制两组数据散点图方法 1. **导入库**:导入matplotlib.pyplot库 2. **准备数据**:创建两组不同的x、y坐标数据 3. **分别绘制**:调用两次`scatter()`函数,分别传入两组数据 4. **设置区分**:通过不同颜色、标记样式或标签区分两组数据 5. **添加图例**:使用`legend()`函数显示图例 ### 完整代码示例 ```python import matplotlib.pyplot as plt import numpy as np # 生成示例数据 np.random.seed(42) x1 = np.random.rand(50) * 10 # 第一组x坐标 y1 = 2 * x1 + np.random.randn(50) # 第一组y坐标 (线性关系+噪声) x2 = np.random.rand(50) * 10 # 第二组x坐标 y2 = 3 * x2 + np.random.randn(50) + 5 # 第二组y坐标 (不同斜率和截距) # 创建图形和坐标轴 plt.figure(figsize=(10, 6)) # 绘制第一组数据(蓝色圆圈) plt.scatter(x1, y1, c='blue', # 颜色 marker='o', # 标记形状 s=60, # 点大小 alpha=0.7, # 透明度 label='Group 1') # 图例标签 # 绘制第二组数据(红色三角形) plt.scatter(x2, y2, c='red', marker='^', s=80, alpha=0.7, label='Group 2') # 添加图表元素 plt.title('两组数据散点图对比', fontsize=14) plt.xlabel('X轴', fontsize=12) plt.ylabel('Y轴', fontsize=12) plt.grid(True, linestyle='--', alpha=0.3) # 添加网格线 plt.legend(fontsize=10) # 显示图例 # 显示图表 plt.show() ``` ### 关键参数说明 1. **区分方式**: - `c`:设置颜色(如'blue'、'red'或十六进制颜色码'#1f77b4') - `marker`:设置标记形状(如'o'圆形、's'方形、'^'三角形) - `s`:控制点的大小(标量或数组) - `label`:设置图例标签(必须配合`plt.legend()`使用) 2. **高级技巧**: ```python # 使用不同大小表示第三维度 sizes = np.random.randint(20, 200, len(x1)) plt.scatter(x1, y1, s=sizes, alpha=0.5) # 使用颜色映射 colors = np.random.rand(len(x2)) plt.scatter(x2, y2, c=colors, cmap='viridis') ``` 3. **保存图像**: ```python plt.savefig('scatter_plot.png', dpi=300, bbox_inches='tight') ``` ### 注意事项 1. 确保两组数据的坐标范围相似,否则可能需调整坐标轴: ```python plt.xlim(0, 12) # 手动设置x轴范围 plt.ylim(0, 40) # 手动设置y轴范围 ``` 2. 当点较多时,调整透明度(`alpha`参数)可避免重叠点遮挡 3. 使用`plt.subplots()`可创建更复杂的多子图布局 这种方法在科研数据分析、机器学习可视化、商业数据对比等场景非常实用,能清晰展示不同数据集的关系和差异[^1][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赛卡

逐梦而行即辉煌

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值