seaborn可视化统计关系/散点图/折线图

2023-11-05

While you should make use of the flexibility afforded by scatterplot( ) and relplot( ), always try to keep in mind that several simple plots are usually more effective than one complex plot.
当你利用 scatterplot( )和 relplot( )所提供的灵活性的同时,应当尽可能地记住一些简单图形,这往往比只记住一个复杂的图形会更加有效。                                      ——Seaborn文档


  • 导入必要的库:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

用散点图关联变量 Relating variables with scatter plots

简单的散点图

  • Seaborn中,可以绘制散点图函数有 scatterplot )relplot( );其使用逻辑为 参数data 对应数据集,参数x参数y 分别对应横轴变量和纵轴变量,传入的都是数据集中数值型数据对应的列名即所谓的变量。对于接下来只介绍的后者来说,当其 参数kind 被设置为 ‘line’ 而不是默认下的 ‘scatter’ 时,它将绘制出的是折线图。使用数据集 tips 1

tips = pd.read_csv('tips.csv')                   # 读取数据
sns.relplot(x='total_bill', y='tip', data=tips)  # 默认参数kind='scatter'

简单的散点图

使用语义的散点图

  • 我想,Seaborn最为人称道的便是可以通过在代码中设置参数来使用不同的语义(semantic),即让点发生改变,从而简单地在二维图像中增加更多的维度。需要指出的是,这种方法的使用逻辑同样是向语义参数传入的列名即所谓的变量,并且该列名对应的数据应为表示分类含义的数据——这是很重要的。色调语义即改变点的颜色,对应 参数hue
sns.relplot(data=tips, x='total_bill', y='tip', hue='smoker', data=tips) 

使用色调语义的散点图

  • 当向参数hue所传入的分类数据为数值时,点的着色将会呈现一种渐进的变化:
sns.relplot(data=tips, x='total_bill', y='tip', hue='size') 

使用色调语义且呈渐进变化的散点图

  • 样式语义 即改变点的样式(形状),对应 参数style
sns.relplot(data=tips, x='total_bill', y='tip', style='smoker')

使用样式语义的散点图

  • 尺寸语义 即改变点的大小(面积),对应 参数size。不同于matplotlib中绘制散点图的函数scatter ( ),点与点之间的相对大小可以由向 参数sizes 传入的范围来控制,而不用取决于数值本身的大小。
sns.relplot(data=tips, x='total_bill', y='tip', hue='size',  size='size', sizes=(15, 200))  
                                                                        # 向参数size传入数据集tips的列名size

使用尺寸语义的散点图

两个语义对应一个变量

  • 如果同时使用色调语义和样式语义,且传入不同的变量,这时生成的二维图像相当于包含了四个变量:
sns.relplot(data=tips, x='total_bill', y='tip', hue='smoker', style='time')

使用色调和样式语义的散点图

  • 显而易见的是,由于我们的眼睛对于形状的敏感度远低于对于颜色的敏感度,圆点与叉点不容易从蓝点与橙点中区分出来。所以,我建议应当对一个变量使用两种语义 ,进而达到更直观的效果:
sns.relplot(data=tips, x='total_bill', y='tip', hue='smoker', style='smoker')  # 改变点的颜色和样式

使用颜色语义和样式语义对一个变量生成的散点图

sns.relplot(data=tips, x='total_bill', y='tip', hue='size', size='size', sizes=(15, 200))# 改变点的颜色与大小

使用颜色语义和尺寸语义对一个变量生成的散点图

用折线图强调连续性 Emphasizing continuity with line plots

简单的折线图

  • 生成一些用来绘制折线图的数据:500行2列,且第一列time为顺序地从0到499,第二列value由500个服从标准正态分布的随机数(由np.random.randn( )2实现)累加后(由np.cumsum( )3实现)得到。

np.random.seed(2021)                                              # 有了这一句便可将生成的随机数组固定下来
df = pd.DataFrame(dict(time=np.arange(500), value=np.random.randn(500).cumsum()))
  • Seaborn中,可以绘制折线图可以直接使用函数lineplot( )或者将函数relplot( )中的 参数kind 设置为’line’,并且其使用逻辑和散点图的绘制没有什么不同。
sns.relplot(x='time', y='value', data=df, kind='line')

简单的折线图

  • 在默认情况下,函数 relplot( ) 会对横轴变量所对应的数据进行排序后再使用,也就是希望该变量是连续的。当然可以取消这步操作,但是这样绘制出来的图一般是找不出两变量之间所具有的关系的:
df = pd.DataFrame(np.random.randn(500, 2).cumsum(axis=0), columns=['x', 'y'])  # axis=0时, 二维数组纵向累加
sns.relplot(data=df, x='x', y='y', kind='line', sort=False)                    # 将参数sort设置为False

奇怪的折线图

由聚合来表示不确定性

  • 对于较为复杂的数据来说,可能会出现横轴变量的同一个取值对应纵轴变量的多个不同的取值(横轴变量取值重复)这种情况。此时,Seaborn的绘图函数relplot( )会计算对应纵轴变量的均值mean)和置信水平为0.95的置信区间confidence interval)来实现一种聚合aggregation)——在matplotlib中画出来的什么都不是(难道是我不会用?)。使用数据集fmri4
fmri = pd.read_csv('fmri.csv')
sns.relplot(x='timepoint', y='signal', kind='line', data=fmri)

使用置信区间聚合后的折线图

  • 当数据集很大的时候,计算置信区间可能需要很长的时间。有两种方法可以进行代替——都会用到 参数ci,即直接选择不计算置信区间而仅计算均值:
sns.relplot(x='timepoint', y='signal', kind='line', data=fmri, ci=None)  # 将参数ci设置为None

没有置信区间的聚合折线图

  • 或者计算数据的标准差standard deviation)来代替置信区间;而从逻辑上讲,如果其区间长度小于置信区间的长度,那么计算标准差也就不会成为备选方案了:
sns.relplot(x='timepoint', y='signal', kind='line', ci='sd', data=fmri)  # 将参数ci设置为sd

使用标准差聚合后的折线图

  • 如果不进行聚合的话,这样绘制的折线图,意义是不大的。但是我们也确实可以通过其以及对应的散点图来理解聚合到底在干什么:
sns.relplot(x='timepoint', y='signal', estimator=None, kind='line', data=fmri)
                                                                   # 需要设置参数estimator=None来关闭聚合

未聚合的折线图

sns.relplot(x='timepoint', y='signal', kind='scatter', data=fmri) 

横轴变量取值重复时的散点图

用语义映射绘制数据子集

  • 在折线图绘制中,同样可以在绘图函数*relplot( )lineplot( )*中设置语义参数来增加更多的变量,从而扩大图像的维度。色调语义会改变线和错误带error band)的颜色:
sns.relplot(x='timepoint', y='signal', hue='event', kind='line', data=fmri)

使用色调语义绘制折线图

  • 当向参数hue所传入的分类数据为数值时,线的着色同样将会呈现一种渐进的变化。这里用到数据集dots5。在有绘图目的的情况下,对数据的要求就会比较高,以至于会用到一些额外的操作——使用*pd.query( )*函数6

dots = pd.read_csv('dots.csv').query('align == "dots"')
sns.relplot(x='time', y='firing_rate', hue='coherence', linewidth=4.5,                   # 设置所有线的宽度
                              ci=None, kind='line', data=dots.query('choice == "T1"'))   # 不计算置信区间

在这里插入图片描述

  • 使用样式语义时,会有更多的选择——由线本身的样式进行区分:
sns.relplot(x='timepoint', y='signal', style='event', kind='line', data=fmri)         # 默认情况下

使用样式语义的折线图

  • 或者再额外设置 参数dashes参数markers,即在数据节点, 改变点的形状:
sns.relplot(x='timepoint', y='signal', style='event', 
            dashes=False, markers=True, kind='line', data=fmri)    # 可以认为是关闭虚线,打开标记点

使用样式语义而改变节点的折线图

  • 使用尺寸语义实际上是在改变线的宽度(粗细),即不同类的线,其宽度是不同的,从而增加图像的维度:
sns.relplot(x='timepoint', y='signal', size='event', kind='line', data=fmri)

使用尺寸语义的折线图

  • 在上面的例子中,我都有意避免了同时使用两个语义,更不要说什么包含四个变量。一方面,我认为还是要从最基本的内容来进行参考,即使这些几乎没有任何难度,另一方面,我仍然建议要对一个变量使用两种语义,从而增加图像在视觉上的直观性,这在后面还会提到。出于练习以及对比,我们不妨在使用两个语义且增加两个变量的同时,体会Seaborn中的绘图函数为我们所带来的便捷性和灵活性。使用色调语义和样式语义:
sns.relplot(x='time', y='firing_rate', hue='coherence', style='choice', kind='line', data=dots)

使用色调语义和样式语义绘制折线图

  • 在同时使用色调语义和尺寸语义时,似乎线的粗细要比线的实虚要更突出一些:
sns.relplot(x='time', y='firing_rate', hue='coherence', size='choice', kind='line', data=dots) 

使用色调语义和尺寸语义绘制折线图

通过分面来表示多个关系Showing multiple relationships with facets

为什么要进行分面

  • 在介绍绘制重复数据的折线图时,使用到了数据集fmri,这里我们不妨进一步来看看每一列的内容究竟是什么:
列名 数据
subject s0、s2、s3、s4、s5、s6、s7、s8、s9、s10、s11、s12、s13
timepoint 0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18
event cue、stim
region parietal、frontal
signal -0.25549 ~ 0.564985
  • 更具体的:
subject timepoint event region signal
s0 1 cue parietal 0.0003
s0 2 cue frontal 0.024296
s0 2 stim parietal 0.009642
s0 17 stim frontal -0.03932
s7 2 cue parietal -0.07661
s8 7 stim parietal 0.312811
s13 9 stim frontal -0.06805
  • 尝试着对这个数据集进行解释:由列 ’subject‘ 可知共有14个采样单位(sampling unit),每个单位由列 ‘event’ 分为 ‘cue’’stim’ 两类、由列 ‘region’ 分为 ‘parietal’’frontal’ 两类,在19个时间单位(0, 1, … , 18)上,测得其 ’signal‘ 值;并且重复值的出现是因为每个时间单位上有十四个采样单位,每个单位又分成4类(2 × 2),即重复56个观测值——这是通过观察不难得出分析结果。

    那么在对数据集有一定了解的情况下,处理起重复值绘图问题就又多了一种选择,即向 参数units 传入列名 ’subject’,绘制出该列的每一个采样单位。接下来选择4类中的一类来进行绘制:

sns.relplot(x='timepoint', y='signal', 
  units='subject', estimator=None,                                        # 对参数estimator的设置似乎是不能缺少的
  kind='line', data=fmri.query('event == "stim" & region == "parietal"')) # 使用pd.query()函数来选择一类

绘制每个采样单位的折线图

  • 上面的这幅图中共有14条线,如果这时使用色调语义来考虑变量 ‘region’ 对横轴变量 ‘timepoint’ 与纵轴变量 *‘signal’*之间的关系所带来的影响,得到的将是28条线密集地出现在一张图这不太让人容易观察出什么的结果:
sns.relplot(x='timepoint', y='signal', hue='region',                                        # 设置语义参数hue
            units='subject', estimator=None,
            kind='line', data=fmri.query('event == "stim"'))

绘制每个采样单位的三变量折线图

给出解决方案

  • 对上面的问题,可以概括成:如何理解两个变量之间的关系是如何依赖于至少一个的其他变量呢?(But what about when you do want to understand how a relationship between two variables depends on more than one other variable?

    Seaborn中,最好的办法就是绘制多张图。对于 参数 col参数 row 来说,和语义参数一样,都是传入类别数据的列名,便会在行和列上生成对应的子图,每个子图表示在该类别下,横轴变量和纵轴变量之间的关系。如果将每个采样单位的四个类别绘制成四张子图,绘制出来的效果可能会有所改善:

sns.relplot(x='timepoint', y='signal', hue='subject',
            col='region', row='event', estimator=None,
            height=2.5, kind='line', data=fmri)   # 参数height设置每个子图的高度

根据类别绘制多个子图

  • 如果将14个采样单位独立地绘制出来,并且是在只考虑两个类别的情况下,这样得到的图像会因为其小而多变得非常有效:
sns.relplot(x='timepoint', y='signal', kind='line', 
    hue='event', style='event',               # 一个变量, 两种语义
    col='subject', col_wrap=5, linewidth=2.5, # 参数col_wrap表示一行子图的个数
    height=2.5, aspect=1.0,                   # 参数aspect表示子图的高度与宽度之比
    data=fmri.query('region == "frontal"'))       

根据采样单位绘制多个子图


  1. 数据集tips的列名为:Index([‘total_bill’, ‘tip’, ‘sex’, ‘smoker’, ‘day’, ‘time’, ‘size’], dtype = ‘object’) ,对应的数据类型分别为:float64、float64、object、object、object、object、int64. ↩︎

  2. 生成的随机数服从标准正态分布,传入生成数据的形状;这里是大小为500的一维数组。可以参考这篇有关生成随机数的文章 ↩︎

  3. 简单的操作: 对于数组arr_1 = [1, 1, 1, 1, 1], arr_1.cumsum( ) = [1, 2, 3, 4, 5]; 对于数组arr_2 = [1, 2, 3, 4], arr_2.cumsum( ) = [1, 3, 6, 10]. ↩︎

  4. 数据集fmri的列名为:Index([‘subject’, ‘timepoint’, ‘event’, ‘region’, ‘signal’], dtype = ‘object’), 对应的数据类型分别为: object、 int64、object、object、float64。更详细的可以参考第三大部分:通过分面来表示多个关系的开头。 ↩︎

  5. 数据集dots的列名为:Index([‘align’, ‘choice’, ‘time’, ‘coherence’, ‘firing_rate’], dtype = ‘object’) ,对应的数据类型分别为:object、object、object、int64、float64、float64. ↩︎

  6. 可以说,该函数是用来在数据框(数据集)中挑选行(样本)的;这里就是在数据集dots中,挑选出列 ‘align’(变量)为"dots"的行(样本),之后又挑选出列 ‘choice’(变量)为"T1"的行(样本)。 ↩︎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

seaborn可视化统计关系/散点图/折线图 的相关文章

  • 在 python + openCV 中使用网络摄像头的问题

    我正在使用以下代码使用 openCV python 访问我的网络摄像头 import cv cv NamedWindow webcam feed cv CV WINDOW AUTOSIZE cam cv CaptureFromCAM 1 然
  • QSortFilterProxyModel + QAbstractItemModel modelIndex.internalPointer() 导致崩溃

    我在 PyQt 4 8 Python 2 7 中实现了自己的 QAbstractItemModel class FriendListModel QtCore QAbstractItemModel def init self groups c
  • 如何配置散景图以具有响应宽度和固定高度

    我使用通过组件功能嵌入的散景 实际上我使用 plot sizing mode scale width 它根据宽度进行缩放并保持纵横比 但我想要一个响应宽度但固定或最大高度 这怎么可能实现呢 有stretch both and scale b
  • OpenCV Python 删除图像中的某些对象

    我正在使用带有 opencv 和 numpy 的 python 来检测天文中的星星 例如这个1 https i stack imgur com AKwEJ jpg图片 使用模板匹配 我可以用阈值检测星星 单击 2 2 https i sta
  • 使用 Flask SQLAlchemy 进行表(模型)继承

    我遵循了这个建议question https stackoverflow com questions 1337095 sqlalchemy inheritance但我仍然收到此错误 sqlalchemy exc NoForeignKeysE
  • Keras,如何获取每一层的输出?

    我已经用 CNN 训练了一个二元分类模型 这是我的代码 model Sequential model add Convolution2D nb filters kernel size 0 kernel size 1 border mode
  • 在一张图中同时绘制两个截面强度

    我有一个形状数组 512 512 看起来像 行 x 列 y 密度 z 数组的数量 0 012825 0 020408 0 022976 0 015938 0 02165 0 024357 0 036332 0 031904 0 025462
  • 将 stdout 重定向到 Python 中的文件? [复制]

    这个问题在这里已经有答案了 如何将 stdout 重定向到 Python 中的任意文件 当长时间运行的 Python 脚本 例如 Web 应用程序 从 ssh 会话内启动并处于后台 并且 ssh 会话关闭时 应用程序将引发 IOError
  • Python - 为什么这段代码被视为生成器?

    我有一个名为 mb 的列表 其格式为 Company Name Rep Mth 1 Calls Mth 1 Inv Totals Mth 1 Inv Vol Mth 2 等等 在下面的代码中 我只是添加了一个包含 38 个 0 的新列表 这
  • Python 中的二进制相移键控

    我目前正在编写一些代码 以使用音频转换通过激光传输消息 文件 和其他数据 我当前的代码使用 python 中 binascii 模块中的 hexlify 函数将数据转换为二进制 然后为 1 发出一个音调 为 0 发出不同的音调 这在理论上是
  • 检查对象数组中的多个属性匹配

    我有一个对象数组 它们都是相同的对象类型 并且它们有多个属性 有没有办法返回一个较小的对象数组 其中所有属性都与测试用例 字符串匹配 无论该属性类型是什么 使用列表理解all http docs python org 3 library f
  • 从文档字符串生成 sphinx 文档不起作用

    我有一个具有以下结构的项目 我想保留 my project build here is where sphinx should dump into requirements txt make bat Makefile more config
  • 散景中的时间序列流

    我想在散景中绘制实时时间序列 我只想在每次更新时绘制新的数据点 我怎样才能做到这一点 散景网站上有一个动画情节的示例 但它每次都需要重新绘制整个图片 另外 我正在寻找一个简单的示例 我可以在其中逐点绘制时间序列的实时绘图 散景效果0 11
  • 将 ASCII 字符转换为“”unicode 表示法的脚本

    我正在对 Linux 区域设置文件进行一些更改 usr share i18n locales like pt BR 并且需要格式化字符串 例如 d m Y H M 必须以 Unicode 指定 其中每个 在本例中为 ASCII 字符表示为
  • Python:使用列表创建二叉搜索树

    我的代码的目标是从 txt 文件中获取每个单独的单词并将其放入列表中 然后使用该列表创建二叉搜索树来计算每个单词的频率 并按字母顺序打印每个单词及其频率 中的每个单词只能包含字母 数字 或 我无法用我的初学者编程知识来做的部分是使用我拥有的
  • Pandas - 分割大的Excel文件

    我有一个大约有 500 000 行的 Excel 文件 我想将其拆分为多个 Excel 文件 每个文件有 50 000 行 我想用熊猫来做 这样它会是最快和最简单的 有什么想法如何制作吗 感谢您的帮助 假设您的 Excel 文件只有一个 第
  • tweepy 流到 sqlite 数据库 - 语法错误[重复]

    这个问题在这里已经有答案了 可能的重复 tweepy 流到 sqlite 数据库 语法无效 https stackoverflow com questions 9434205 tweepy stream to sqlite database
  • 升级后 pip 损坏

    我做了 pip install U easyinstall 然后 pip install U pip 来升级我的 pip 但是 当我尝试使用 pip 时 我现在收到此错误 root d8fb98fc3a66 which pip usr lo
  • 在没有numpy的情况下在python中分配变量NaN

    大多数语言都有一个 NaN 常量 您可以使用它为变量分配值 NaN python 可以在不使用 numpy 的情况下做到这一点吗 是的 使用math nan https docs python org 3 library math html
  • 获取长度为 n 的所有(n-选择-k)组合

    我怎样才能获得长度的所有组合 按顺序 n从数字列表中 例如 给定列表 1 2 3 4 并设置n 3 我怎样才能得到这些结果 1 2 3 1 2 4 1 3 4 2 3 4 For combinations of all possible l

随机推荐

  • java泛型里能放多个类吗,具有多个类的Java泛型通配符

    小编典典 实际上 你可以做你想做的事 如果要提供多个接口或一个类加接口 则必须使通配符看起来像这样 请参见sun com上的泛型教程 特别是页面底部的 绑定类型参数 部分 实际上 如果需要 你可以列出多个接口 并 InterfaceName
  • Spring Boot 3.0学习笔记

    什么是Spring Boot Spring Boot是一个基于Spring Framework的快速开发Web应用的工具 它使用了约定优于配置的方式来快速构建应用 使得开发人员能够专注于业务逻辑的实现 而不用过多关注配置和框架集成问题 Sp
  • iostat 工具分析I/O性能

    iostat命令用途 主要用于监控系统设备的IO负载情况 iostat首次运行时显示自系统启动开始的各项统计信息 之后运行iostat将显示自上次运行该命令以后的统计信息 用户可以通过指定统计的次数和时间来获得所需的统计信息 iostat有
  • 若依框架密码验证环节修改(三方登录时改为跳过密码验证,但正常登录保留密码验证)

    当用到三方登录时 例如微信登录等 没法验证密码 又找不到若依密码的解密方式 套用此方法 跳过密码验证 并且为可选的 想让哪个方法登录时要密码或者不要 写上即可 我使用的是若依不分离版 但参考自官方文档 大差不差 具体见个人情况 参考地址 若
  • 【学习笔记】数据获取之爬虫笔记

    概述 疫情期间在风变编程 https www pypypy cn 上学习了爬虫的相关知识 风变编程是一个交互式学习网站 目前开的模块还不是很多但是交互式在线教学实验的形式还是十分有趣 交互式的形式教一个读书顺序 督催一行一行读书 告诉什么时
  • 网页唤起QQ在线聊天

    免费版 详见 https shang qq com v3 widget html 示例 a href http wpa qq com msgrd v 3 uin 1078363295 site qq menu yes 在线客服 a 目前还能
  • 【华师】C++简答题汇总

    简答题 斜体和代码块都是了解即可 面向对象四大特征 封装 抽象 继承 多态 对象 客观世界中的任何一个事物都可以视作一个对象 任何一个对象都己有两个要素 属性和行为 属性是对象本身的性质 而行为是对象的功能 C 中每个对象都是由数据和函数组
  • unity 项目强制退出通知服务器,MonoBehaviour.OnApplicationQuit() 当应用程序退出 - Unity5 中文 API 手册...

    Description 描述 Sent to all game objects before the application is quit 在应用退出之前发送给所有的游戏物体 In the editor this is called wh
  • FTP实现文件夹上传

    package com supcon orchid ChuanHuaCostom util import java io BufferedInputStream import java io BufferedOutputStream imp
  • TCP实现客户端和服务器端连接、文件上传,UDP发送消息、实现多线程在线咨询

    TCP实现客户端和服务器端连接 客户端 连接服务器Socket 发送消息 import java io IOException import java io OutputStream import java net InetAddress
  • python面对对象编程

    什么是面对对象编程 程序设定的范式 面对对象编程可以是代码程序更加的可控更加让人理解 面对对象编程就是把现实世界变得抽象并建立起对象模型 程序就是不同对象之间相互调用的逻辑 例 人 动物 车 这些都是现实世界的东西那就可以在这段代码中抽象出
  • UVM-寄存器模型

    目录 1 什么是寄存器 2 寄存器块 3 UVM寄存器模型 3 1 期望值 3 2 镜像值 3 3 创建寄存器类 3 4 定义寄存器块 3 5 寄存器env 4 完整例子 4 1设计 4 2 interface 4 3 寄存器 4 4 寄存
  • vscode不能选择python解释器

    command python select interpreter resulted in an error 解决方法 会看到左下角会有restricted mode这几个字 然后点这几个字 再选择Trust就可以了
  • 计算机网络(自顶向下)学习笔记——网络层

    第四章 网络层 4 1 概述 转发功能和路由选择功能的区别 转发涉及在单个的路由中从一条入链路到一条出链路的传送 路由选择涉及一个网络的所有路由器 他们经路由选择协议共同交互 决定分组从源到目地结点所采用的的路径 4 1 1 转发和路由选择
  • springmvc的常用注解

    1 RequestParam 1 作用在方法传递的参数前 用于接收所传参数 是springmvc中接受普通参数的注解 2 属性 value 请求参数中的名称 required 请求参数中是否提供此参数 默认为true defaultValu
  • HTTPS 安全原理 建立安全连接经过5次握手 SSL(Secure Socket Layer)/TLS(Transport Layer Security)

    文章目录 安全通信的几个方面 机密性 报文完整性 端点鉴别 SSL Secure Socket Layer TLS Transport Layer Security SSL的加密过程 握手 密钥导出 数据传输 SSL记录格式 HTTPS建立
  • vue+element 在table 中使用vue-qrcode动态生成二维码

    安装 npm install xkeshi vue qrcode save 在需要的页面中引入 import QRcode from xkeshi vue qrcode components qrcode QRcode 在el table中
  • strcmp(const char *s1,const char * s2)比较字符串s1和s2函数

    原型 extern int strcmp const char s1 const char s2 所在头文件 string h 功能 比较字符串s1和s2 一般形式 strcmp 字符串1 字符串2 说明 当s1
  • word2vec的词向量&&神经网络的embedding层的关系

    自己之前学习了一波word2vec的词向量 神经网络的embedding 关于这2者的原理和实践 可以参看我之前的博客 利用神经网络的embedding层处理类别特征 一 理解word2vec 原理篇 二 理解word2vec 实践篇 这篇
  • seaborn可视化统计关系/散点图/折线图

    While you should make use of the flexibility afforded by scatterplot and relplot always try to keep in mind that several