seaborn 调色板

常用于调色板的函数及其作用

hls_palette 用于控制调色板颜色的亮度和饱和度

xkcd_palette 使用 xkcd 颜色中的颜色名称创建调色板

cubehelix_palette 用于创建连续调色板

light_palette 用于创建颜色从浅色到深色的连续调色板

dark_palette 用于创建颜色从深色到深色混合的连续调色板

choose_light_palette 启动交互式小部件以创建浅色连续调色板

choose_dark_palette 启动交互式小部件以创建深色连续调色板

diverging_palette 用于创建离散调色板

choose_diverging_palette 启动交互式小部件选择不同的调色板,与 diverging_palette 函数功能相对应

color_palette 用于返回定义调色板的颜色列表或连续颜色图

set_palette 用于设置调色板,为所有图设置默认颜色周期

导入不同的颜色主题 seaborn 默认颜色周期及不同颜色的主题

sns.palplot(sns.color_palette())

在这里插入图片描述

默认颜色主题有 deep, muted, bright, dark, colorblind 等,默认为 deep

palette = sns.color_palette('muted')
sns.palplot(palette)

在这里插入图片描述

HLS 颜色空间(H 表示色调,L 表示亮度,S 表示饱和度)

可由 RGB 颜色空间经过简单转换得到(R 代表红色,G 代表绿色,B 代表蓝色)

sns.palplot(sns.color_palette('hls',8))  #8表示色块格数

在这里插入图片描述

使用 hls_palette 函数控制颜色的亮度和饱和度

`sns.palplot(sns.hls_palette(8, l=.3,s=.8)) # l 控制亮度,S 控制饱和度`

在这里插入图片描述

husl 可以使得调色板的亮度和饱和度在视觉上更加一致

sns.palplot(sns.color_palette('husl',8))

在这里插入图片描述

使用 xkcd 颜色

可以通过 xkcd_rgb 字典装饰调用颜色,也可以通过 xkcd_palette 函数自定义调色板

sns.set()
x = np.arange(1,10,2)
y1 = x + 1
y2 = x + 3
y3 = x + 5
plt.plot(x,y1,sns.xkcd_rgb['pale red'],lw=3)
plt.plot(x,y2,sns.xkcd_rgb['medium green'],lw=3)
plt.plot(x,y3,sns.xkcd_rgb['denim blue'],lw=3)
plt.title('线条颜色示例')
plt.show()

# 自定义调色板
colors = ['windows blue','amber','greyish','faded green','dusty purple']
sns.palplot(sns.xkcd_palette(colors))

在这里插入图片描述

绘制连续调色板、亮度反转及切换面板

# 绘制连续调色板、亮度反转及切换面板

sns.palplot(sns.color_palette('YlOrRd'))

sns.palplot(sns.color_palette('YlOrRd_r')) # 在调色板名称后缀添加' _r '可以实现亮度反转

sns.palplot(sns.color_palette('YlOrRd_d')) # 在调色板名称后缀添加' _d '可绘制连续调色板、亮度反转及切换面板

# 连续调色板名称及渐变顺序

# YlOrRd - 黄橙红  Purples - 紫     Greys - 灰色
# YlOrBr - 黄橙棕   PuRd - 紫红     Greens - 绿
# YlGnBu - 黄绿蓝  PuBuGn - 紫蓝绿  GuBu - 绿蓝
# YlGn   - 黄绿     PuBu - 紫蓝     BuP - 蓝紫
# Reds   - 红       OrRd - 橙红     BuGn - 蓝绿
# RdPu   - 红紫    Oranges - 橙     Blues - 蓝

在这里插入图片描述

使用 cubehelix_palette 函数生成调色板对象并传入绘图函数

sns.palplot(sns.cubehelix_palette(8,start=1,rot=0))

在这里插入图片描述

x, y = np.random.multivariate_normal([0,0],[[1,-.5],[-.5,1]],size=300).T
cmap = sns.cubehelix_palette(as_cmap=True)  # 生成调色板对象
sns.kdeplot(x=x, y=y, cmap=cmap, shade=True)
plt.title('连续调色板')
plt.show()

在这里插入图片描述

自定义连续调色板并传入绘图函数

#自定义连续调色板并传入绘图函数

pal = sns.dark_palette((200,80,60),input='husl',reverse=True,as_cmap=True)
sns.kdeplot(x=x, y=y, cmap=pal)
plt.title('自定义连续调色板')
plt.show()

在这里插入图片描述

Color Brewer 库中的离散调色板

sns.palplot(sns.color_palette('BrBG',9))

在这里插入图片描述

sns.palplot(sns.color_palette('RdBu_r',9))

在这里插入图片描述

coolwarm 离散调色板

sns.palplot(sns.color_palette('coolwarm',9))

在这里插入图片描述

diverging_palette 函数的常用参数及其说明

h_neg 接收 0~359 的 float。表示调色板的正范围的色调。无默认值
h_pos 接收 0~359 的 float。表示调色板的负范围的色调。无默认值
s 接收 0~100 的 float。表示两个范围的色调饱和度。默认值为 75
l 接收 0~100 的 float。表示两个范围的色调亮度。默认值为 50
n 接收int。表示调色板颜色数目。默认值为 6
center 接收str。表示调色板中心明暗,可选light、dark。默认为 light
as_cmap 接收bool。表示是否返回 Matplotlib 颜色映射对象。默认为 False

使用 diverging_palette 函数自定义离散调色板

sns.palplot(sns.diverging_palette(240,10,n=7))

在这里插入图片描述

sns.palplot(sns.diverging_palette(150,275,s=80,l=55,n=7))

在这里插入图片描述

创建中间值是暗色的调色板

sns.palplot(sns.diverging_palette(250,15,s=75,l=40,n=7,center='dark'))

在这里插入图片描述

通过 sep 参数控制中间区域渐变宽度

sns.palplot(sns.diverging_palette(150,275,s=80,l=55,n=7,sep=80))

在这里插入图片描述

使用 set_palette 函数设置调色板

x = np.arange(1,10,2)
y1 = x + 1
y2 = x + 3
y3 = x + 5
def showLine(flip=1):
    sns.lineplot(x=x,y=y1)
    sns.lineplot(x=x,y=y2)
    sns.lineplot(x=x,y=y3)

showLine()
plt.title('默认调色板')
plt.show()

在这里插入图片描述

sns.set_palette('YlOrRd_d')
showLine()
plt.title('使用set_palette函数设置调色板')
plt.show()

在这里插入图片描述

sns.set()
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
pic = plt.figure(figsize=(8,4))
with sns.color_palette('PuBuGn_d'):
    pic.add_subplot(1,2,1)
    showLine()
    plt.title('使用 color_palette函数设置调色板')

pic.add_subplot(1,2,2)
showLine()
plt.title('默认调色板')
plt.show()

在这里插入图片描述

在 seaborn 库中,可使用 heatmap 函数绘制热力图。

heatmap 函数的主要参数及说明

data 绘制可转换为 ndarray 的二维矩阵数据集。表示用于绘图的数据集。无默认值
vmin,vmax 接收颜色映射的值的范围。默认为None
cmap 接收颜色映射或颜色列表。表示数字到颜色空间的映射。默认为 None
center 接收float。表示以0为中心发散颜色。默认为 None
robust 接收bool。如果为 True 且 vmin 参数 vmax 参数为 None,则使用分位数表示映射范围。默认为False
annot 接收bool或矩阵数据。表示是否在每个单元格中显示数值。默认为 None
fmt 接收str。表示添加注释时使用的字符串格式代码。默认为 .2g
linewidths 接收float。表示划分每个单元格的线宽。默认为0
linecolor 接收str。表示划分每个单元格的线条颜色。默认为white
square 接收bool。表示十分使每个单元格为方形。默认为 False

boston = pd.read_csv('boston_house_prices.csv',encoding='gbk') 
plt.rcParams['axes.unicode_minus'] = False
corr = boston.corr()
sns.heatmap(corr)
plt.title('特征矩阵热力图')
plt.show()

绘制热力图

在这里插入图片描述

添加数据标记,设置函数 annot=True,辅助增强显示效果

plt.figure(figsize=(10,10))
sns.heatmap(corr,annot=True,fmt='.2f')
plt.title('特征矩阵热力图')
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值