Seaborn学习及绘制各种图

为什么我们需要Seaborn
开始绘图吧:

首先回答一个问题:matplotlib已经足够可以画很多图了,为什么我们还要用Seaborn呢?

答案就是懒惰,换个角度说,懒人可以说是推动了社会发展嘛。具体来说是,当我们使用matplotlib绘图时,即使我们要画一个简单的图,每次都要按照流程将代码整个写完,感觉很麻烦,这时候我们会不会想说,直接做一个模板然后将要展示出去的数据直接传入就可以绘制出精美的图案了?实际上Seaborn是对matplotlib基础上的封装,当我们要画折线图、散点图等时只需要两三行代码即可。

开始绘图吧!

首先导入本次训练中必要的库:
import seaborn as sns # 导入可视化库seaborn,我们通常简称为sns
import numpy as np # 导入科学计算库
import matplotlib as mpl #导入可视化库
import matplotlib.pyplot as plt
%matplotlib inline   
# 内嵌画图 有了%matplotlib inline 就可以省掉plt.show()了

1.整体布局风格设置

**1.1使用sns.set()函数** 导入seaborn默认绘图风格,这里我们定义了一个简单函数,测试一下
def sinplot(flip=1):
    x = np.linspace(0,14,100)
    for i in range(1,7):
        plt.plot(x,np.sin(x+i*.5)*(7-i)*flip)

导入之前:
2.1
导入之后
就看见

seaborn提供了5种主题风格

1.2 whitegrid
绘制箱线图

sns.set_style("whitegrid")
data=np.random.normal(size=(20,6))+np.arange(6)/2
sns.boxplot(data=data)  #绘制箱线图

箱线图
1.3 dark
没有刻度线,背景是深色

sns.set_style("dark") #不要网格线,背景是深色
sinplot()

dark
1.4 white
没有刻度线,背景是白色

sns.set_style("dark") #不要网格线,背景是白色
sinplot()

white
1.5 ticks
在上下左右加上刻度线,为了美观设置sns.despine() 清除上右边的刻度线

sns.set_style("ticks") #在上下左右作出短线(刻度线)
sinplot()
sns.despine() # 清除上右边的刻度线

tick

补充

1>设置sns.despine(offset=30),画图距离轴线的距离

sns.violinplot(data)
sns.despine(offset=30)#画图距离轴线的距离

offset
2>设置sns.despine(left=True)保留左边的轴

sns.set_style("whitegrid")
sns.boxplot(data=data,palette="deep")  #绘制箱线图
sns.despine(left=True)

在这里插入图片描述
3> sns.set_context()
可取"notebook"、“paper”、“poster”等,如下图

sns.set()
sns.set_context("paper")
plt.figure(figsize=(8,6))
sinplot()

sns.set_context("poster")
plt.figure(figsize=(8,6))
sinplot()

sns.set_context("notebook",font_scale=1.5,rc={"lines.linewidth":2.5})
plt.figure(figsize=(8,6))
sinplot()

paper
poster
notebook

2.调色板

2.1 color_palette()
能传入任何Matplotlib所支持的颜色,若不写参数则使用默认值

2.2 set_palette()
设置所有图的颜色

### 3.单变量分析

未完待续

点击此处,返回顶部

发布了17 篇原创文章 · 获赞 17 · 访问量 1146

猜你喜欢

转载自blog.csdn.net/baidu_41304382/article/details/104755236