python绘图之swarmplot分布散点图

swarmplot 是 Seaborn 提供的一种用于展示分类数据分布的散点图。它的主要作用是将数据点按照分类变量(通常是离散变量)进行分组,并在每个分类中以一种非重叠的方式展示数据点的位置。这种可视化方式可以帮助我们直观地理解数据在不同分类下的分布情况,同时避免了数据点之间的重叠,使得数据的细节更加清晰。本节我们学习使用python绘制swarmplot分布散点图.

python 复制代码
import seaborn as sns  # 导入Seaborn库,用于数据可视化
import matplotlib.pyplot as plt  # 导入Matplotlib库,用于绘图
import pandas as pd  # 导入Pandas库,用于数据处理
import numpy as np  # 导入NumPy库,用于数值计算

# 生成示例数据
np.random.seed(42)  # 设置随机种子,确保每次运行代码时生成的随机数相同,便于结果复现
data_size = 100  # 定义数据集的大小,即生成100个数据点

# 随机生成是否吸烟的数据
smoker_status = np.random.choice(['yes', 'no'], size=data_size, p=[0.3, 0.7])
# 使用np.random.choice生成一个随机数组,表示是否吸烟的状态。
# 参数:
#   ['yes', 'no']:可能的取值,表示吸烟状态。
#   size=data_size:生成100个随机值。
#   p=[0.3, 0.7]:概率分布,表示30%的人吸烟,70%的人不吸烟。

# 根据吸烟状态生成费用数据
# 假设吸烟者的费用更高
charges = np.random.normal(loc=10000, scale=5000, size=data_size)
# 使用np.random.normal生成正态分布的费用数据。
# 参数:
#   loc=10000:均值为10000。
#   scale=5000:标准差为5000。
#   size=data_size:生成100个数据点。
charges[smoker_status == 'yes'] += 5000
# 对于吸烟者(smoker_status为'yes'),在其原有费用基础上额外增加5000,模拟吸烟者更高的费用。

# 创建数据框
insurance = pd.DataFrame({'smoker': smoker_status, 'charges': charges})
# 使用Pandas的DataFrame将smoker_status和charges两列数据组合成一个数据框,方便后续绘图。

# 绘制 Swarmplot
plt.figure(figsize=(7, 7))  # 设置绘图窗口的大小为7x7英寸
sns.swarmplot(x='smoker', y='charges', data=insurance)
# 使用Seaborn的swarmplot绘制分类散点图。
# 参数:
#   x='smoker':x轴为smoker状态。
#   y='charges':y轴为费用。
#   data=insurance:指定数据源为insurance数据框。
plt.title('Swarmplot of Charges by Smoker Status')  # 设置图表标题
plt.xlabel('Smoker')  # 设置x轴标签
plt.ylabel('Charges')  # 设置y轴标签
plt.show()  # 显示图表
相关推荐
DreamNotOver26 分钟前
基于Scikit-learn集成学习模型的情感分析研究与实现
python·scikit-learn·集成学习
liulilittle33 分钟前
HTTP简易客户端实现
开发语言·网络·c++·网络协议·http·编程语言
Learn Beyond Limits40 分钟前
Error metrics for skewed datasets|倾斜数据集的误差指标
大数据·人工智能·python·深度学习·机器学习·ai·吴恩达
半瓶榴莲奶^_^1 小时前
python基础案例-数据可视化
python·信息可视化·数据分析
程序员皮皮林1 小时前
Java jar 如何防止被反编译?代码写的太烂,害怕被人发现
java·开发语言·jar
qczg_wxg1 小时前
高阶组件介绍
开发语言·javascript·react native·ecmascript
mit6.8241 小时前
[网络入侵AI检测] docs | 任务二分类与多分类
python
CHANG_THE_WORLD1 小时前
C++ 并发编程指南 实现无锁队列
开发语言·c++·缓存·无锁队列·无锁编程
这里没有酒1 小时前
[C语言] 结构体 内存对齐规则 内存大小计算
c语言·开发语言
CHANG_THE_WORLD2 小时前
C++ 内存模型:用生活中的例子理解并发编程
开发语言·c++·生活