在数据可视化中,颜色映射(colormap)是一个重要的概念,它可以帮助我们更好地理解数据的分布和趋势。Matplotlib提供了多种内置的颜色映射,但有时我们需要自定义颜色映射以满足特定的需求。Matplotlib内置了多种颜色映射(colormap),可以通过plt.get_cmap()函数获取。我们可以使用plt.imshow()函数来显示数据,并通过cmap参数指定颜色映射。seaborn库也提供了多种颜色映射,可以通过seaborn.color_palette()函数获取。此外,Matplotlib还支持使用ListedColormapLinearSegmentedColormap类来自定义颜色映射。

1. 使用内置颜色映射

1
2
3
4
5
6
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

cmap1 = plt.get_cmap("viridis") # 获取内置颜色映射
cmap2 = sns.color_palette("viridis", as_cmap=True) # 获取seaborn颜色映射

2. 如何自定义颜色映射

配色来自知乎博主阿昆的科研日常
img

1
2
3
4
5
6
7
import matplotlib.colors as colors
from matplotlib.colors import LinearSegmentedColormap
# 创建自定义颜色映射
color_Citlali=["#2A307A","#79C0F4","#F9EEF6","#D9A1C8","#AA6FB1"] # https://zhuanlan.zhihu.com/p/16319790673
color_Varesa=["#EA8589","#68D8C8","#F9EBBC","#453A41","#8E3C91"] # https://zhuanlan.zhihu.com/p/1889269380099048069
cmap_Citlali=colors.LinearSegmentedColormap.from_list("Citlali", color_Citlali)
cmap_Varesa=colors.LinearSegmentedColormap.from_list("Varesa", color_Varesa)

在jupyter中,直接输入cmap_Citlalicmap_Varesa,就可以看到颜色映射的效果。