python绘图之密集散点图

密集散点图主要目的是生成一个可视化图表,展示 insurance 数据集中 bmi(身体质量指数)和 charges(医疗费用)之间的关系,并通过不同的维度对数据进行分组和区分,以便更清晰地观察数据的分布和特征。

import seaborn as sns  # 导入 Seaborn,用于绘图
import matplotlib.pyplot as plt  # 导入 Matplotlib,用于显示图表
import pandas as pd  # 导入 Pandas,用于数据处理
import numpy as np  # 导入 NumPy,用于数值计算

# 设置随机种子,确保每次运行代码时生成的随机数据相同
np.random.seed(0)  

# 定义数据集的大小
data_size = 100  

# 随机生成示例数据集
insurance = pd.DataFrame({
    'bmi': np.random.uniform(18, 35, data_size),  # 随机生成 100 个 BMI 值,范围在 18 到 35 之间
    'charges': np.random.uniform(1000, 50000, data_size),  # 随机生成 100 个医疗费用值,范围在 1000 到 50000 之间
    'sex': np.random.choice(['male', 'female'], data_size),  # 随机生成 100 个性别值,选择 "male" 或 "female"
    'region': np.random.choice(['northwest', 'southeast', 'southwest', 'northeast'], data_size)  # 随机生成 100 个地区值
})

# 使用 Seaborn 的 relplot 函数绘制关系图
sns.relplot(
    x='bmi',  # 横轴变量为 BMI
    y='charges',  # 纵轴变量为医疗费用
    hue='sex',  # 根据性别对数据点进行颜色区分
    col='region',  # 按地区分列显示
    row='sex',  # 按性别分行显示
    data=insurance,  # 使用上面生成的 insurance 数据集
    height=7,  # 设置每个子图的高度为 7 英寸
    aspect=.6  # 设置每个子图的宽高比为 0.6
)

# 显示图表
plt.show()

你可能感兴趣的:(python,开发语言)