使用不同的颜色映射绘制热力图Seaborn

使用不同的颜色映射绘制热力图

  • 一、使用 Seaborn 库创建热力图
  • 二、cmap关于其他颜色的设置
  • 三、自己设置颜色映射

一、使用 Seaborn 库创建热力图

选择Seaborn颜色官网
使用不同的颜色映射绘制热力图Seaborn_第1张图片

使用 Seaborn 库创建热力图,你可以使用 seaborn.heatmap() 函数。下面是一个示例代码:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# 生成二维数组
data = np.random.rand(10, 10)
# 使用 Seaborn 创建热力图
sns.heatmap(data, cmap="YlGnBu", annot=True, fmt=".2f", cbar=True)
# 显示图形
plt.show()

在这个示例中,我们首先使用 numpy.random.rand() 函数生成了一个 10x10 的随机二维数组 data。
然后,我们使用 seaborn.heatmap() 函数创建了热力图。我们将 data 作为输入数据,并指定了颜色映射 cmap 为 “YlGnBu”,这是 Seaborn 中的一个预定义颜色映射。
通过设置 annot=True,我们可以在热力图中显示每个单元格的数值,并使用 fmt=“.2f” 指定显示的数值格式为小数点后两位。
最后,使用 cbar=True 创建一个颜色条。

cmap=“YlGnBu” 表示使用了 Seaborn 预定义的颜色映射,它代表了从黄色到绿色再到蓝色的渐变。这种颜色映射通常用于表示数据的大小或密度,颜色从浅到深逐渐增加可以很好地展示数据的变化情况。

二、cmap关于其他颜色的设置

可以去官网中找

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.rand(20, 50))
# 使用不同的颜色映射绘制热力图
cmap_styles = [
    'viridis', 'plasma', 'inferno', 'magma', 'cividis', 'Greys', 'Purples', 'Blues', 'Greens', 'Oranges',
    'Reds', 'YlOrBr', 'YlOrRd', 'OrRd', 'PuRd', 'RdPu', 'BuPu', 'GnBu', 'PuBu', 'YlGnBu',
    'PuBuGn', 'BuGn', 'YlGn', 'binary', 'gist_yarg', 'gist_gray', 'gray', 'bone', 'pink', 'spring',
    'summer', 'autumn', 'winter', 'cool', 'Wistia', 'hot', 'afmhot', 'gist_heat', 'copper', 'PiYG',
    'PRGn', 'BrBG', 'PuOr', 'RdGy', 'RdBu', 'RdYlBu', 'RdYlGn', 'Spectral', 'coolwarm', 'bwr',
    'seismic', 'twilight', 'twilight_shifted', 'hsv'
]
fig, axes = plt.subplots(6, 9, figsize=(16, 8))
axes = axes.ravel()
for i, cmap in enumerate(cmap_styles):
    ax = axes[i]
    sns.heatmap(data, cmap=cmap, ax=ax)
    ax.set_title(cmap)

plt.tight_layout()
plt.show()

使用不同的颜色映射绘制热力图Seaborn_第2张图片

三、自己设置颜色映射

import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
import numpy as np
import seaborn as sns

# 自定义颜色映射
colors = ['red', 'yellow', 'blue']
cm = LinearSegmentedColormap.from_list('myc', colors, N=10)
# 生成随机二维数组作为示例数据
data = np.random.rand(20, 50)
# # 绘制热力图并应用自定义颜色映射,设置纵横比为正方形,边框颜色为黑色
sns.heatmap(data, cmap=cm, cbar=True, linecolor='black', linewidths=0.5)
# 显示图形
plt.show()

使用不同的颜色映射绘制热力图Seaborn_第3张图片

你可能感兴趣的:(画图,python)