DAY 9 热力图和子图的绘制

知识点:热力图和子图的绘制

  1. 介绍了热力图的绘制方法
  2. 介绍了enumerate()函数
  3. 介绍了子图的绘制方法

enumerate ( ) 是 Python 内置函数,用于将可迭代对象(如列表、元组、字符串)组合为索引序列,同时返回元素和其对应索引。这在需要同时访问元素和索引的循环中特别有用。

enumerate(iterable, start=0)

  • iterable:必需,支持迭代的对象(如列表、元组、字符串)。
  • start:可选,指定索引起始值,默认为 0
    features = ['thalach','cp','oldpeak','slope',]
    
    for i, feature in enumerate(features):
        print(f"索引 {i} 对应的特征是: {feature}")
    
    
    # 索引 0 对应的特征是: thalach
    # 索引 1 对应的特征是: cp
    # 索引 2 对应的特征是: oldpeak
    # 索引 3 对应的特征是: slope

作业:

尝试对着心脏病数据集绘制热力图和单特征分布的大图(包含几个子图)

绘制热力图

# 提取连续值特征
continuous_features = ['age','sex','cp','trestbps','chol','fbs','restecg','thalach','exang','oldpeak','slope','ca','thal','target']

# 计算相关系数矩阵
correlation_matrix = data[continuous_features].corr()

# 设置图片清晰度
plt.rcParams['figure.dpi'] = 300

# 绘制热力图(添加annot_kws={'fmt': '.1f'})
plt.figure(figsize=(10, 8))
sns.heatmap(
    correlation_matrix, 
    annot=True, 
    fmt =  '.1f',  # 指定数值显示格式为保留一位小数的浮点数
    cmap='coolwarm', # 这是一个从蓝色(冷色调)到红色(暖色调)的渐变配色方案,表示数值从低到高的变化
    vmin=-1, 
    vmax=1
)
plt.title('Correlation Heatmap of Continuous Features')
plt.show()

绘制子图

# 定义要绘制的特征
features = ['thalach','cp','oldpeak','slope',]

# 设置图片清晰度
plt.rcParams['figure.dpi'] = 300

# 创建一个包含 2 行 2 列的子图布局
fig, axes = plt.subplots(2, 2, figsize=(12, 8))

# 使用 for 循环遍历特征
for i in range(len(features)):
    row = i // 2 # 计算当前特征在子图中的行索引,// 是整除,即取整 ,之所以用整除是因为我们要的是行数
    # 例如 0//2=0, 1//2=0, 2//2=1, 3//2=1
    col = i % 2 # 计算当前特征在子图中的列索引,% 是取余,即取模
    # 例如 0%2=0, 1%2=1, 2%2=0, 3%2=1
    # 绘制箱线图
    feature = features[i]
    axes[row, col].boxplot(data[feature].dropna())
    axes[row, col].set_title(f'Boxplot of {feature}')
    axes[row, col].set_ylabel(feature)

# 调整子图之间的间距
plt.tight_layout()

# 显示图形
plt.show()

@浙大疏锦行 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值