Python之Seaborn

Seaborn简介

http://seaborn.pydata.org/

  • seaborn其实是在Matplotlib的基础上进行了更高级的API封装,从而使得作图更容易,一般能满足数据分析90%的绘图需求,更复杂的定义图形,还是要Matplotlib。
#准备工作
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei']      # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False        # 用来正常显示负号
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})    #正常显示中文

import warnings
warnings.filterwarnings('ignore')       #去除部分警告信息

Seaborn内置数据集

https://github.com/mwaskom/seaborn-data

titanic = sns.load_dataset('titanic',cache=True)

在这里插入图片描述

sns.set_style("darkgrid")
plt.bar([1,2,3,4,5],[3,6,9,7,3])

在这里插入图片描述

sns.set_style("ticks")
plt.bar([1,2,3,4,5],[3,6,9,7,3])
sns.despine()   #去除Seaborn的图脊,默认去除上和右

在这里插入图片描述

sns.set_style("ticks")
plt.bar([1,2,3,4,5],[3,6,9,7,3])
sns.despine(left=True,bottom=True)

在这里插入图片描述

sns.set_style("ticks")
plt.bar([1,2,3,4,5],[3,6,9,7,3])
sns.despine(left=True,bottom=True)
plt.xticks([])
plt.yticks([])

在这里插入图片描述

Seaborn调色板

  • 分为连续渐变色板和离散分类色板
  • 分类色板主要用color_palette()函数
    color_palette()能传入任何Matplotlib所支持的颜色
    color_palette()不写参数则为默认颜色
    set_palette()设置所有图的颜色
  • 6个默认的颜色循环主题:deep,muted,pastel,bright,dark,colorblind
current_palette = sns.color_palette()
sns.barplot([1,2,3,4,5],[3,6,9,7,3])

在这里插入图片描述

sns.palplot(current_palette)

在这里插入图片描述

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

在这里插入图片描述

# 一个交互式方法
sns.choose_cubehelix_palette()

在这里插入图片描述

柱状图 seaborn.barplot()

x = ['a','b','c','d']
y = [132,342,156,241]
sns.barplot(x,y)

在这里插入图片描述

x = ['a','b','c','d']
y = [132,342,156,241]
sns.barplot(x,y,order=['b','d','c','a'])

在这里插入图片描述

x = ['a','b','c','d']
y = [132,342,156,241]
sns.barplot(x,y,
            orient='v',      #纵向显示
            saturation=0.25) #色彩饱和度

在这里插入图片描述

x = ['a','b','c','d']
y = [132,342,156,241]
sns.barplot(y,x,         #交换x,y
            orient='h',  #横向显示
            saturation=0.25)

在这里插入图片描述

导入tips数据集

tips = sns.load_dataset("tips")
tips.head()

sns.barplot(x='day',y='tip',data=tips)  #竖线代表置信区间,柱体高度代表该类别下所有值的均值
sns.barplot(x='day',y='tip',data=tips,hue='sex') 
sns.barplot(x='day',y='tip',data=tips,hue='sex',palette='Reds') 

在这里插入图片描述

条形图

sns.barplot(y='day',x='tip',data=tips)
sns.barplot(y='day',x='tip',data=tips,hue='sex')

在这里插入图片描述

箱线图 boxplot

L = [2,5,1,6,3]
sns.boxplot(x=L)
L = [2,5,1,6,3]
sns.boxplot(y=L)

在这里插入图片描述

在这里插入图片描述

sns.boxplot(x='day',y='tip',data=tips)
sns.boxplot(x='day',y='tip',data=tips,hue='sex')

在这里插入图片描述

小提琴图 violinplot

L=[3,2,0,1,4]
sns.violinplot(L,palette='Reds')
sns.violinplot(x='day',y='tip',data=tips,hue='sex')
sns.violinplot(x='day',y='tip',data=tips,hue='sex',split=True)

在这里插入图片描述

分类散点图 strip(带状)图和swarm(蜂群状)图

sns.stripplot(x='day',y='tip',data=tips)

sns.stripplot(x='day',y='tip',data=tips,hue='sex')

sns.swarmplot(x='day',y='tip',data=tips,hue='sex')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分面网格分类图 catplot

sns.catplot(x='day',y='tip',data=tips,hue='sex')

sns.catplot(x='day',y='tip',data=tips,hue='sex',col='time')

sns.catplot(x='day',y='tip',data=tips,hue='sex',col='time',kind='violin',split=True)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

散点图 scatterplot

n = 1024
x = np.random.normal(0,1,n)
y = np.random.normal(0,1,n)
sns.scatterplot(x=x,y=y)
plt.title('绘制散点图',fontproperties='SimHei')

在这里插入图片描述

sns.scatterplot(x='total_bill',y='tip',hue='sex',data=tips)

在这里插入图片描述

plt.figure(dpi=150)
sns.scatterplot(x='total_bill',y='tip',hue='sex',style='time',data=tips)

在这里插入图片描述

线图 lineplot

data = {
        'apples' : [3,2,0,1],
        'oranges' : [0,1,2,3],
        'bananas' : [1,2,2,0]
}
df = pd.DataFrame(data, index=['June','Robert','Lily','David'])
sns.lineplot(data=df)

在这里插入图片描述

#图一
tips = sns.load_dataset('tips')
tips.head()
plt.figure(dpi=150)
sns.lineplot(x='total_bill',y='tip',data=tips)

#图二
tips = sns.load_dataset('tips')
tips.head()
plt.figure(dpi=150)
sns.lineplot(x='total_bill',y='tip',data=tips,hue='sex')

#图三
tips = sns.load_dataset('tips')
tips.head()
plt.figure(dpi=150)
sns.lineplot(x='total_bill',y='tip',data=tips,hue='sex',size='smoker',style='time')

图一
图1
图二
在这里插入图片描述

图三
在这里插入图片描述

分面网格关联图 relplot

mpg_df = sns.load_dataset('mpg')
g = sns.relplot(x='displacement',y='mpg',data=mpg_df)

g = sns.relplot(x='displacement',y='mpg',hue='origin',col='cylinders',row='origin',kind='line',data=mpg_df)

在这里插入图片描述

在这里插入图片描述

Dist图

sns.distplot(tips['total_bill'])
sns.distplot(tips['total_bill'],kde=False)  #kde为密度曲线

在这里插入图片描述
在这里插入图片描述

密度图 kdeplot

sns.kdeplot(tips['total_bill'])

在这里插入图片描述

n = 1024
x = np.random.normal(0,1,n)
y = np.random.normal(0,1,n)
g = sns.kdeplot(x,y)

g = sns.kdeplot(x,y,shade=True)

在这里插入图片描述
在这里插入图片描述

连接图 jointplot

n = 1024
x = np.random.normal(0,1,n)
y = np.random.normal(2,3,n)

g = sns.jointplot(x,y)   #默认图
g = sns.jointplot(x,y,kind='reg')   #添加线性回归线
g = sns.jointplot(x,y,kind='kde')   #设置为密度图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

热力图 heatmap

df = pd.DataFrame(np.random.rand(10,10),columns=list('ABCDEFGHIJ'))
sns.heatmap(df)
sns.heatmap(df,cmap='Greens')  #设置颜色面板
sns.heatmap(df,cmap='Greens',annot=True)  #设置annot参数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

线性回归图 regplot

df = sns.load_dataset('tips')
sns.regplot(x='total_bill',y='tip',data=df)

分面网格线性回归图 lmplot

sns.lmplot(x='total_bill',y='tip',data=df)

在这里插入图片描述

分面网格绘图

mpg_df = sns.load_dataset('mpg')
g = sns.FacetGrid(mpg_df, col='origin')
g.map(sns.distplot,'mpg')

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值