seaborn热力图鲁棒分位数
时间: 2025-05-06 21:07:30 浏览: 29
### 使用 Seaborn 绘制基于鲁棒分位数的热力图
为了实现基于鲁棒分位数的热力图,可以通过计算数据集中的分位数值来定义颜色映射范围。以下是详细的说明和代码示例:
#### 数据准备
假设有一个二维数组作为输入数据。首先需要导入必要的库并加载或创建测试数据。
```python
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# 创建随机数据用于演示
np.random.seed(0)
data = np.random.randn(10, 12) * 100 # 随机生成的数据
```
#### 计算鲁棒分位数
鲁棒分位数通常指排除异常值后的分布特性。这里可以选择第5%到第95%之间的分位数作为颜色映射范围[^1]。
```python
q_low = np.percentile(data, 5) # 下界:第5百分位数
q_high = np.percentile(data, 95) # 上界:第95百分位数
vmin, vmax = q_low, q_high # 定义颜色映射范围
```
#### 设置颜色映射和其他参数
`cmap` 参数指定颜色方案,而 `annot=True` 可以在每个单元格中标注具体数值。如果不需要标注,则可将其设为 False[^3]。
```python
# 自定义热力图的颜色映射
custom_cmap = "coolwarm"
# 调整其他绘图选项
heatmap_options = {
'annot': True, # 是否显示数值
'fmt': '.1f', # 数字格式化方式
'linewidths': .5, # 单元格边界线宽度
'linecolor': 'black', # 边界线条颜色
'cbar': True # 显示颜色条
}
```
#### 绘制热力图
最后调用 `sns.heatmap()` 函数完成图形绘制,并传递之前设定好的参数。
```python
plt.figure(figsize=(8, 6))
ax = sns.heatmap(
data,
cmap=custom_cmap,
vmin=vmin,
vmax=vmax,
**heatmap_options
)
# 添加标签和标题
ax.set_title('Robust Quantile Heatmap Example')
plt.show()
```
以上代码片段展示了如何利用 Seaborn 库构建一个带有鲁棒分位数控制的热力图[^4]。
---
阅读全文
相关推荐





