我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python数据可视化之Seaborn怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python数据可视化之Seaborn怎么使用

这篇文章主要介绍了Python数据可视化之Seaborn怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python数据可视化之Seaborn怎么使用文章都会有所收获,下面我们一起来看看吧。

    1. 安装 seaborn

    安装:

    pip install seaborn

    导入:

    import seaborn as sns

    2.准备数据

    正式开始之前我们先用如下代码准备一组数据,方便展示使用。

    import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snspd.set_option('display.unicode.east_asian_width', True)df1 = pd.DataFrame(    {'数据序号': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],     '厂商编号': ['001', '001', '001', '002', '002', '002', '003', '003', '003', '004', '004', '004'],     '产品类型': ['AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC', 'AAA', 'BBB', 'CCC'],     'A属性值': [40, 70, 60, 75, 90, 82, 73, 99, 125, 105, 137, 120],     'B属性值': [24, 36, 52, 32, 49, 68, 77, 90, 74, 88, 98, 99],     'C属性值': [30, 36, 55, 46, 68, 77, 72, 89, 99, 90, 115, 101]    })print(df1)

    生成一组数据如下:

    Python数据可视化之Seaborn怎么使用

    3.背景与边框

    3.1 设置背景风格

    设置风格使用的是sns.set_style()方法,且这里内置的风格,是用背景色表示名字的,但是实际内容不限于背景色。

    sns.set_style()

    可以选择的背景风格有:

    • whitegrid  白色网格

    • dark  灰色背景

    • white  白色背景

    • ticks  四周带刻度线的白色背景

    sns.set()
    sns.set_style(“darkgrid”)
    sns.set_style(“whitegrid”)
    sns.set_style(“dark”)
    sns.set_style(“white”)
    sns.set_style(“ticks”) 

    其中sns.set()表示使用自定义样式,如果没有传入参数,则默认表示灰色网格背景风格。如果没有set()也没有set_style(),则为白色背景。

    一个可能的bug:使用relplot()方法绘制出的图像,"ticks"样式无效。

    3.2 其他

    seaborn库是基于matplotlib库而封装的,其封装好的风格可以更加方便我们的绘图工作。而matplotlib库常用的语句,在使用seaborn库时也依然有效。

    关于设置其他风格相关的属性,如字体,这里有一个细节需要注意的是,这些代码必须写在sns.set_style()的后方才有效。如将字体设置为黑体(避免中文乱码)的代码: 

    plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

    如果在其后方设置风格,则设置好的字体会设置的风格覆盖,从而产生警告。其他属性也同理。

    3.3 边框控制

    sns.despine()方法

    # 移除顶部和右部边框,只保留左边框和下边框sns.despine()# 使两个坐标轴相隔一段距离(以10长度为例)sns.despine(offet=10,trim=True)# 移除左边框sns.despine(left=True)# 移除指定边框 (以只保留底部边框为例)sns.despine(fig=None, ax=None, top=True, right=True, left=True, bottom=False, offset=None, trim=False)

    4. 绘制 散点图

    使用seaborn库 绘制散点图,可以使用replot()方法,也可以使用scatter()方法。

    replot方法的参数kind默认是’scatter’,表示绘制散点图。

    hue参数表示 在该一维度上,用颜色区分

    ①对A属性值和数据序号绘制散点图,红色散点,灰色网格,保留左、下边框

    sns.set_style(‘darkgrid')plt.rcParams[‘font.sans-serif'] = [‘SimHei']sns.relplot(x=‘数据序号', y=‘A属性值', data=df1, color=‘red')plt.show()

    Python数据可视化之Seaborn怎么使用

    ②对A属性值和数据序号绘制散点图,散点根据产品类型的不同显示不同的颜色,

    白色网格,左、下边框:

    sns.set_style(‘whitegrid')plt.rcParams[‘font.sans-serif'] = [‘SimHei']sns.relplot(x=‘数据序号', y=‘A属性值', hue=‘产品类型', data=df1)plt.show()

    Python数据可视化之Seaborn怎么使用

    ③将A属性、B属性、C属性三个字段的值用不同的样式绘制在同一张图上(绘制散点图),x轴数据是[0,2,4,6,8…]

    ticks风格(四个方向的框线都要),字体使用楷体

    sns.set_style(‘ticks')plt.rcParams[‘font.sans-serif'] = [‘STKAITI']df2 = df1.copy()df2.index = list(range(0, len(df2)*2, 2))dfs = [df2[‘A属性值'], df2[‘B属性值'], df2[‘C属性值']]sns.scatterplot(data=dfs)plt.show()

    Python数据可视化之Seaborn怎么使用

    5. 绘制 折线图

    使用seaborn库绘制折线图, 可以使用replot()方法,也可以使用lineplot()方法。

    5.1 使用 replot()方法

    sns.replot()默认绘制的是散点图,绘制折线图只需吧参数kind改为"line"。

    ①需求:绘制A属性值与数据序号的折线图,

    灰色网格,全局字体为楷体;并调整标题、两轴标签 的字体大小,

    以及坐标系与画布边缘的距离(设置该距离是因为字体没有显示完全):

    sns.set(rc={‘font.sans-serif': “STKAITI”})sns.relplot(x=‘数据序号', y=‘A属性值', data=df1, color=‘purple', kind=‘line')plt.title(“绘制折线图”, fontsize=18)plt.xlabel(‘num', fontsize=18)plt.ylabel(‘A属性值', fontsize=16)plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)plt.show()

    Python数据可视化之Seaborn怎么使用

    ②需求:绘制不同产品类型的A属性折线(三条线一张图),whitegrid风格,字体楷体。

    sns.set_style(“whitegrid”)plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.relplot(x=‘数据序号', y=‘A属性值', hue=‘产品类型', data=df1, kind=‘line')plt.title(“绘制折线图”, fontsize=18)plt.xlabel(‘num', fontsize=18)plt.ylabel(‘A属性值', fontsize=16)plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)plt.show()

    Python数据可视化之Seaborn怎么使用

    ③需求:将A属性、B属性、C属性三个字段的值用不同的样式绘制在同一张图上(绘制折线图),x轴数据是[0,2,4,6,8…]

    darkgrid风格(四个方向的框线都要),字体使用楷体,并加入x轴标签,y轴标签和标题。边缘距离合适。

    sns.set_style(‘darkgrid')plt.rcParams[‘font.sans-serif'] = [‘STKAITI']df2 = df1.copy()df2.index = list(range(0, len(df2)*2, 2))dfs = [df2[‘A属性值'], df2[‘B属性值'], df2[‘C属性值']]sns.relplot(data=dfs, kind=“line”)plt.title(“绘制折线图”, fontsize=18)plt.xlabel(‘num', fontsize=18)plt.ylabel(‘A属性值', fontsize=16)plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)plt.show()

    Python数据可视化之Seaborn怎么使用

    ③多重子图

    横向多重子图 col

    sns.set_style(‘darkgrid')plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.relplot(data=df1, x=“A属性值”, y=“B属性值”, kind=“line”, col=“厂商编号”)plt.subplots_adjust(left=0.05, right=0.95, bottom=0.1, top=0.9)plt.show()

    Python数据可视化之Seaborn怎么使用

    纵向多重子图 row

    sns.set_style(‘darkgrid')plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.relplot(data=df1, x=“A属性值”, y=“B属性值”, kind=“line”, row=“厂商编号”)plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.95)plt.show()

    Python数据可视化之Seaborn怎么使用

    5.2 使用 lineplot()方法

    使用lineplot()方法绘制折线图,其他细节基本同上,示例代码如下:

    sns.set_style(‘darkgrid')plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.lineplot(x=‘数据序号', y=‘A属性值', data=df1, color=‘purple')plt.title(“绘制折线图”, fontsize=18)plt.xlabel(‘num', fontsize=18)plt.ylabel(‘A属性值', fontsize=16)plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)plt.show()

    Python数据可视化之Seaborn怎么使用

    sns.set_style(‘darkgrid')plt.rcParams[‘font.sans-serif'] = [‘STKAITI']df2 = df1.copy()df2.index = list(range(0, len(df2)*2, 2))dfs = [df2[‘A属性值'], df2[‘B属性值'], df2[‘C属性值']]sns.lineplot(data=dfs)plt.title(“绘制折线图”, fontsize=18)plt.xlabel(‘num', fontsize=18)plt.ylabel(‘A属性值', fontsize=16)plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)plt.show()

    Python数据可视化之Seaborn怎么使用

    6. 绘制直方图 displot()

    绘制直方图使用的是sns.displot()方法

    • bins=6 表示 分成六个区间绘图

    • rug=True 表示在x轴上显示观测的小细条

    • kde=True表示显示核密度曲线

    sns.set_style(‘darkgrid')plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.displot(data=df1[[‘C属性值']], bins=6, rug=True, kde=True)plt.title(“直方图”, fontsize=18)plt.xlabel(‘C属性值', fontsize=18)plt.ylabel(‘数量', fontsize=16)plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)plt.show()

    Python数据可视化之Seaborn怎么使用

    随机生成300个正态分布数据,并绘制直方图,显示核密度曲线

    sns.set_style(‘darkgrid')plt.rcParams[‘font.sans-serif'] = [‘STKAITI']np.random.seed(13)Y = np.random.randn(300)sns.displot(Y, bins=9, rug=True, kde=True)plt.title(“直方图”, fontsize=18)plt.xlabel(‘C属性值', fontsize=18)plt.ylabel(‘数量', fontsize=16)plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)plt.show()

    Python数据可视化之Seaborn怎么使用

    7. 绘制条形图 barplot()

    绘制条形图使用的是barplot()方法

    以产品类型 字段数据作为x轴数据,A属性值数据作为y轴数据。按照厂商编号字段的不同进行分类。

    具体如下:

    sns.set_style(‘darkgrid')plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.barplot(x=“产品类型”, y=‘A属性值', hue=“厂商编号”, data=df1)plt.title(“条形图”, fontsize=18)plt.xlabel(‘产品类型', fontsize=18)plt.ylabel(‘数量', fontsize=16)plt.subplots_adjust(left=0.15, right=0.9, bottom=0.15, top=0.9)plt.show()

    Python数据可视化之Seaborn怎么使用

    8. 绘制线性回归模型

    绘制线性回归模型使用的是lmplot()方法。

    主要的参数为x, y, data。分别表示x轴数据、y轴数据和数据集数据。

    除此之外,同上述所讲,还可以通过hue指定分类的变量;

    通过col指定列分类变量,以绘制 横向多重子图;

    通过row指定行分类变量,以绘制 纵向多重子图;

    通过col_wrap控制每行子图的数量;

    通过size可以控制子图的高度;

    通过markers可以控制点的形状。

    下边对 X属性值 和 Y属性值 做线性回归,代码如下:

    sns.set_style(‘darkgrid')plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.lmplot(x=“A属性值”, y=‘B属性值', data=df1)plt.title(“线性回归模型”, fontsize=18)plt.xlabel(‘A属性值', fontsize=18)plt.ylabel(‘B属性值', fontsize=16)plt.subplots_adjust(left=0.15, right=0.9, bottom=0.15, top=0.9)plt.show()

    Python数据可视化之Seaborn怎么使用

    9. 绘制 核密度图 kdeplot()

    9.1 一般核密度图

    绘制和密度图,可以让我们更直观地看出样本数据的分布特征。绘制核密度图使用的方法是kdeplot()方法。

    对A属性值和B属性值绘制核密度图,

    将shade设置为True可以显示包围的阴影,否则只有线条。

    sns.set_style(‘darkgrid')plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.kdeplot(df1[“A属性值”], shade=True, data=df1, color=‘r')sns.kdeplot(df1[“B属性值”], shade=True, data=df1, color=‘g')plt.title(“核密度图”, fontsize=18)plt.xlabel(‘Value', fontsize=18)plt.subplots_adjust(left=0.15, right=0.9, bottom=0.15, top=0.9)plt.show()

    Python数据可视化之Seaborn怎么使用

    9.2 边际核密度图

    绘制边际核密度图时使用的是sns.jointplot()方法。参数kind应为"kde"。使用该方法时,默认使用的是dark样式。且不建议手动添加其他样式,否则可能使图像无法正常显示。

    plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.jointplot(x=df1[“A属性值”], y=df1[“B属性值”], kind=“kde”, space=0)plt.show()

    Python数据可视化之Seaborn怎么使用

    10. 绘制 箱线图 boxplot()

    绘制箱线图使用到的是boxplot()方法。

    基本的参数有x, y, data。

    除此之外 还可以有

    hue 表示分类字段

    width 可以调节箱体的宽度

    notch 表示中间箱体是否显示缺口,默认False不显示。

    鉴于前边的数据数据量不太够不便展示,这里再生成一组数据:

    np.random.seed(13)Y = np.random.randint(20, 150, 360)df2 = pd.DataFrame({‘厂商编号': [‘001', ‘001', ‘001', ‘002', ‘002', ‘002', ‘003', ‘003', ‘003', ‘004', ‘004', ‘004'] * 30,‘产品类型': [‘AAA', ‘BBB', ‘CCC', ‘AAA', ‘BBB', ‘CCC', ‘AAA', ‘BBB', ‘CCC', ‘AAA', ‘BBB', ‘CCC'] * 30,‘XXX属性值': Y})

    生成好后,开始绘制箱线图:

    plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.boxplot(x=‘产品类型', y=‘XXX属性值', data=df2)plt.show()

    Python数据可视化之Seaborn怎么使用

    交换x、y轴数据后:

    plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.boxplot(y=‘产品类型', x=‘XXX属性值', data=df2)plt.show()

    可以看到箱线图的方向也随之改变

    Python数据可视化之Seaborn怎么使用

    将厂商编号作为分类字段:

    plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.boxplot(x=‘产品类型', y=‘XXX属性值', data=df2, hue=“厂商编号”)plt.show()

    Python数据可视化之Seaborn怎么使用

    11. 绘制 提琴图 violinplot()

    提琴图结合了箱线图和核密度图的特征,用于展示数据的分布形状。

    使用violinplot()方法绘制提琴图。

    plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.violinplot(x=‘产品类型', y=‘XXX属性值', data=df2)plt.show()

    Python数据可视化之Seaborn怎么使用

    plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.violinplot(x=‘XXX属性值', y=‘产品类型', data=df2)plt.show()

    Python数据可视化之Seaborn怎么使用

    plt.rcParams[‘font.sans-serif'] = [‘STKAITI']sns.violinplot(x=‘产品类型', y=‘XXX属性值', data=df2, hue=“厂商编号”)plt.show()

    Python数据可视化之Seaborn怎么使用

    12. 绘制 热力图 heatmap()

    以双色球中奖号码数据为例绘制热力图,这里数据采用随机数生成。

    import pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns sns.set()plt.figure(figsize=(6,6))plt.rcParams[‘font.sans-serif'] = [‘STKAITI'] s1 = np.random.randint(0, 200, 33)s2 = np.random.randint(0, 200, 33)s3 = np.random.randint(0, 200, 33)s4 = np.random.randint(0, 200, 33)s5 = np.random.randint(0, 200, 33)s6 = np.random.randint(0, 200, 33)s7 = np.random.randint(0, 200, 33)data = pd.DataFrame({‘一': s1,‘二': s2,‘三': s3,‘四':s4,‘五':s5,‘六':s6,‘七':s7}) plt.title(‘双色球热力图')sns.heatmap(data, annot=True, fmt=‘d', lw=0.5)plt.xlabel(‘中奖号码位数')plt.ylabel(‘双色球数字')x = [‘第1位', ‘第2位', ‘第3位', ‘第4位', ‘第5位', ‘第6位', ‘第7位']plt.xticks(range(0, 7, 1), x, ha=‘left')plt.show()

    Python数据可视化之Seaborn怎么使用

    关于“Python数据可视化之Seaborn怎么使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python数据可视化之Seaborn怎么使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Python数据可视化之Seaborn怎么使用

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Python数据可视化之Seaborn怎么使用

    这篇文章主要介绍了Python数据可视化之Seaborn怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python数据可视化之Seaborn怎么使用文章都会有所收获,下面我们一起来看看吧。1. 安装 s
    2023-06-30

    Python中seaborn库之countplot的数据可视化使用

    在Python数据可视化中,seaborn较好的提供了图形的一些可视化功效。 seaborn官方文档见链接:http://seaborn.pydata.org/api.html countplot是seaborn库中分类图的一种,作用是使用
    2022-06-02

    Python中seaborn库之countplot数据可视化的使用方法

    这篇文章给大家分享的是有关Python中seaborn库之countplot数据可视化的使用方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Python数据可视化中,seaborn较好的提供了图形的一些可视化
    2023-06-15

    Python中怎么利用seaborn实现数据可视化

    本篇文章为大家展示了Python中怎么利用seaborn实现数据可视化,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。本文目标图表是这样:2个系列。每个系列找出最小最大的柱子,标记成不同的颜色本文所需
    2023-06-16

    如何使用python数据可视化Seaborn画热力图

    这篇文章主要为大家展示了“如何使用python数据可视化Seaborn画热力图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用python数据可视化Seaborn画热力图”这篇文章吧。1.
    2023-06-22

    如何使用python数据可视化Seaborn绘制山脊图

    这篇文章主要介绍如何使用python数据可视化Seaborn绘制山脊图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 引言山脊图一般由垂直堆叠的折线图组成,这些折线图中的折线区域间彼此重叠,此外它们还共享相同的x
    2023-06-22

    Python数据可视化之Pyecharts如何使用

    这篇“Python数据可视化之Pyecharts如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python数据可视化
    2023-07-06

    python数据可视化之条形图怎么画

    这篇“python数据可视化之条形图怎么画”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python数据可视化之条形图怎么画
    2023-06-30

    python数据可视化怎么做

    通过使用 python 库(numpy、pandas、matplotlib),可以实现数据可视化。具体步骤包括:数据准备:导入库、加载数据、处理数据。选择可视化类型:根据数据和需要传达的信息,选择合适的图表类型。创建可视化对象:使用 mat
    python数据可视化怎么做
    2024-05-22

    使用Python进行数据可视化

    本文主要介绍了使用Python进行数据可视化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-14

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录