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()  # 显示图表
相关推荐
Smoothcloud润云5 分钟前
PyTorch推理请求超时与取消处理实战
人工智能·pytorch·python·深度学习·机器学习·gpu算力·gpu
我是人✓14 分钟前
Java核心语法:作用域、循环与大数值处理
java·开发语言·后端
敲代码的乔帮主18 分钟前
Python 3 现代类型标注入门
开发语言·python
计算机编程指导师33 分钟前
大数据毕业设计推荐:Hadoop+Django全球碳排放减排策略分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·碳排放
计算机编程指导师1 小时前
Python大数据毕设怎么做?基于Hadoop+Spark的高频电力消耗数据可视化与分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·电力
‎ദ്ദിᵔ.˛.ᵔ₎1 小时前
c++11:fuction包装器
开发语言·c++
kimnoic1 小时前
Python 爬虫的原理
开发语言·python
Fluxproxy1 小时前
Python爬虫异步提速终极方案|线程池ThreadPoolExecutor实战,告别单线程慢速爬取
开发语言·爬虫·python
蜗牛互联网1 小时前
Java标准HTTP调用多模态模型的票据抽取前置校验
java·人工智能·python·http
用户019027581611 小时前
AlphaFeed K 线的 OHLCV 字段怎么理解?(含单位)
python