Python之Seaborn

本文详细介绍Seaborn库在数据分析中的应用,包括各种图表类型如条形图、箱线图、散点图等的绘制方法,以及如何调整样式和颜色,适用于Python数据可视化初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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')

在这里插入图片描述

### 如何在Python中安装seaborn库 要在Python环境中成功安装 `seaborn` 库,可以按照以下方式操作: #### 方法一:通过pip安装 最常用的方法是利用 Python 的包管理工具 `pip` 安装 `seaborn` 及其依赖项。运行以下命令即可完成安装: ```bash pip install seaborn ``` 该命令会自动下载并安装 `seaborn` 所需的核心依赖库,如 `NumPy`, `SciPy`, 和 `Matplotlib`[^2]。 如果当前环境中的 `pip` 版本较旧,可能需要先升级 `pip` 工具后再尝试安装 `seaborn`: ```bash pip install --upgrade pip ``` #### 方法二:针对特定版本的Python解释器 当系统中有多个 Python 解释器时(例如 Python 2.x 和 Python 3.x),建议指定对应的 `pip` 命令来避免冲突。对于 Python 3.x 用户,可使用如下命令之一: ```bash pip3 install seaborn ``` 或者直接调用对应版本的 Python 脚本来执行安装: ```bash python3 -m pip install seaborn ``` #### 方法三:解决安装失败的情况 有时由于网络原因或本地配置错误可能导致 `pip install seaborn` 失败。此时可以根据具体报错信息采取相应措施。比如,在某些情况下可能是 Python 版本过低引起的兼容性问题[^3];因此推荐更新至最新稳定版 Python 并重试上述步骤。 另外一种解决方案是从源码编译安装。首先访问官方仓库地址获取最新发布版本压缩文件链接 (https://github.com/mwaskom/seaborn),接着解压后进入目录再依次执行下面两条语句完成构建过程: ```bash python setup.py build python setup.py install ``` #### 示例代码验证安装是否成功 为了确认 `seaborn` 是否已正确加载到项目里,可以在脚本开头引入它,并绘制一张简单图形测试功能正常与否。 ```python import seaborn as sns import matplotlib.pyplot as plt # 加载内置数据集 'tips' data = sns.load_dataset('tips') # 绘制箱形图 sns.boxplot(x='day', y='total_bill', data=data) plt.show() ``` 以上就是关于如何在 Python 中安装 seaborn 库的相关指导内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值