python 之seaborn库的基础使用(画板主题及颜色选择)

一、seaborn库是干啥用的?

画图

Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。

自己用seaborn也用得不深,这里就把常用的总结一下,权当方便自己以后复习。

二、画板主题设置

  1. 画板有5种主题设置:darkgrid、whitegrid、dark、white、ticks
import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline

#生成一些测试数据
#不用sns的默认主题,需要自己进行设置
data1 = np.random.randint(1,10,100)
#fig = plt.figure(figsize=(9,6))
plt.hist(data1)

 未设置画板时,默认是这个样子

#用sns.set()是默认主题darkgrid
sns.set()
plt.hist(data1)

sns.set_style('darkgrid')
plt.hist(data1)

 

sns.set_style('whitegrid')
plt.hist(data1)

sns.set_style('white')
plt.hist(data1)

sns.set_style('dark')
plt.hist(data1)

#与white主题的区别是,多了刻度符
sns.set_style('ticks')
plt.hist(data1)

 

 2、设置图表的4种格式:paper、talk、poster、notebook

注意观察图形和坐标轴的变化

data_x = np.linspace(0,2*np.pi,100)
data_y = np.sin(data_x)

sns.set_context("paper")
plt.plot(data_x,data_y)

sns.set_context('talk')
plt.plot(data_x,data_y)

 

sns.set_context("poster")
plt.plot(data_x,data_y)

#font_scale是设置坐标轴字体的大小,"lines.linewidth"是线型的大小
sns.set_context("notebook", font_scale=3.5, rc={"lines.linewidth": 4.5})
plt.plot(data_x,data_y)

 

 三、调色选择

颜色选择上,我是从使用的角度出发总结记忆的,色彩上,咱们常用的无非三种类型:

1、分类色(需要若干个色彩来代表不同主题,如表示五个省份近几年的GDP变化情况,这时选择的色彩就是分类色)

2、对比色(需要在对象之间做明显比照,如果只有一组对象,直接用分类色就OK了,如果有多组对象,最好是同组对象是同一个色调不同饱和度,如深蓝和浅蓝)

3、渐变色(需要表现一个主题在不同阶段的变化)

 1、分类色

分类色选择一般用2种方法,一种是使用color_palette("hls", n)函数,使用hls颜色空间,选择你需要的n中颜色即可;一种是用hls_palette(n, l=0.5, s=0.5)函数,选择你需要的颜色数量n,再自定义l(lightness 亮度和situation饱和度)

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
sns.palplot(sns.color_palette("hls", 8))

sns.palplot(sns.hls_palette(10, l=.7, s=.9))

 

#使用例子
data_x = np.arange(1,11,1)
data_y = np.random.randint(1,10,10)

pal = sns.color_palette("hls", 10)
sns.barplot(data_x,data_y,palette=pal)

 2、对比色

只有2个对象的对比色不用讲了,直接用上面的分类色就行,如果有多组对象,每组有2个对象的,用函数color_palette("Paired",n)定义,n表示n个颜色。

这里有一个疑问没解决,如果有多组,一组有3个或3个以上对象,颜色对比就不会搞了,有会弄的大侠留言指教一下哩。

sns.palplot(sns.color_palette("Paired",8))

 

a = np.arange(1,9,1)
b = np.random.randint(1,10,8)
#print(b)
sns.barplot(a,b,palette=sns.color_palette("Paired", 8)) 

 

 3、渐变色

设置渐变色可以用四个函数实现:color_palette("颜色名",n)、cubehelix_palette(n, start=0.5, rot=-0.75)、light_palette("颜色名")、dark_palette("颜色名")

sns.palplot(sns.color_palette("Reds",10))

sns.palplot(sns.color_palette("Blues_r",10))

sns.palplot(sns.cubehelix_palette(8, start=.3, rot=-.15))

 

 

sns.palplot(sns.light_palette("green",8))
sns.palplot(sns.dark_palette("purple",8))

  • 11
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值