Python----数据可视化(Seaborn合集:先容,应用,画图,利用FacetGrid画图)

[复制链接]
发表于 2025-10-17 08:05:18 | 显示全部楼层 |阅读模式
一、Seaborn的先容

        Seaborn 是一个基于 matplotlib 的 Python 库,对其举行了高级 API 的封装,使得作图更为方便和吸引人。只管在大多数环境下,利用 Seaborn 就可以大概创建出雅观的图表,但 matplotlib 提供了更高的机动性和定制化的本领。因此,Seaborn 应该被视为 matplotlib 的增补,而非替换品。
   官方地点:
   http://seaborn.pydata.org/seaborn: statistical data visualization — seaborn 0.13.2 documentation
    安装: 
  pip install seaborn
   二、应用

2.1、seaborn简朴利用

  1. import matplotlib.pyplot as plt
  2. import seaborn as sns
  3. sns.set()
  4. plt.plot([1,5,10],[1,3,5])
  5. plt.show()
复制代码

2.2、内置数据集

        load_dataset()默认提供了数据集,方便测试图表的利用
  1. """从在线仓库加载示例数据集(需要互联网连接)。  
  2.     此函数提供对少量示例数据集的快速访问,这些数据集对文档编写 Seaborn 或生成可重复的示例以进行错误报告非常有用。在正常使用中并不是必需的。  
  3.     请注意,一些数据集会应用少量预处理,以确定分类变量的正确顺序。  
  4.     使用 :func:`get_dataset_names` 查看可用数据集的列表。  
  5.     参数  
  6.     ----------  
  7.     name : str  
  8.         数据集名称(``{name}.csv`` 位于  
  9.         https://github.com/mwaskom/seaborn-data)。  
  10.     cache : boolean, optional  
  11.         如果为 True,先尝试从本地缓存加载数据,如果需要下载则保存到缓存。  
  12.     data_home : string, optional  
  13.         用于缓存数据的目录;请参见 :func:`get_data_home`。  
  14.     kws : 键值对,可选  
  15.         额外的关键字参数将传递给 :func:`pandas.read_csv`。  
  16.     返回  
  17.     -------  
  18.     df : :class:`pandas.DataFrame`  
  19.         表格数据,可能会应用了一些预处理。  
  20. """
复制代码
  1. import seaborn as sns
  2. data = sns.load_dataset('tips')
  3. print(data)
复制代码
  留意:
          假如网络欠好, 在
  mwaskom/seaborn-data: Data repository for seaborn examples
  可下载完备数据集
  2.3、风格设置

        除了各种画图方式外,图形的雅观程度大概是我们最关心的了。将它放到第一部分,由于风格设置是一些通用性的操纵,对于各种画图方法都实用。
Seaborn 支持的风格有5种
darkgrid黑配景-白格
whitegrid 白配景-白格
dark 黑配景
white 白配景
ticks
   设置风格的方法:
  

  • set(style='')
  • set_style(value) 同一设置
  • axes_style(value) 单一设置
  2.3.1、whitegrid 

  1. import seaborn as sns
  2. from matplotlib import pyplot as plt
  3. import pandas as pd
  4. # data = sns.load_dataset('tips')
  5. data=pd.read_csv('tips.csv')
  6. sns.set_style('whitegrid')
  7. sns.barplot(x='sex', y='size', data=data)
复制代码

2.3.2、white

  1. import seaborn as sns
  2. from matplotlib import pyplot as plt
  3. import pandas as pd
  4. # data = sns.load_dataset('tips')
  5. data=pd.read_csv('tips.csv')
  6. sns.set_style('white')
  7. sns.barplot(x='sex', y='size', data=data)
复制代码

2.3.3、darkgrid

  1. import seaborn as sns
  2. from matplotlib import pyplot as plt
  3. import pandas as pd
  4. # data = sns.load_dataset('tips')
  5. data=pd.read_csv('tips.csv')
  6. sns.set_style('darkgrid')
  7. sns.barplot(x='sex', y='size', data=data)
复制代码

2.3.4、dark

  1. import seaborn as sns
  2. from matplotlib import pyplot as plt
  3. import pandas as pd
  4. # data = sns.load_dataset('tips')
  5. data=pd.read_csv('tips.csv')
  6. sns.set_style('dark')
  7. sns.barplot(x='sex', y='size', data=data)
复制代码

2.3.5、 ticks

  1. import seaborn as sns
  2. from matplotlib import pyplot as plt
  3. import pandas as pd
  4. # data = sns.load_dataset('tips')
  5. data=pd.read_csv('tips.csv')
  6. sns.set_style('ticks')
  7. sns.barplot(x='sex', y='size', data=data)
复制代码

2.3.6、第二种方法

  1. sns.set(style='whitegrid')
  2. sns.barplot(x='sex', y='size', data=data)
复制代码
2.3.7、第三种方法

  1. with sns.axes_style('darkgrid'):
  2.   sns.lineplot(x='total_bill', y='tip', data=data)
复制代码
2.4、调色板

        颜色比图形样式的其他方面更告急,由于假如有用利用颜色可以更凸表现数据的结果与告急
        Seaborn可以轻松选择和利用得当您正在利用的数据范例的调色板以及您可视化的目的
支持的方法
color_palette()能传入任何Matplotlib所支持的颜色
color_palette()不写参数则,默认颜色 deep, muted, pastel, bright, dark, colorblind
color_palette()["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"]
light_palette()
dark_palette()
set_palette()设置全部图的颜色
  1. current_palette = sns.color_palette()
  2. sns.palplot(current_palette)
复制代码

  1. current_palette = sns.color_palette('dark')
  2. sns.palplot(current_palette) #10个色块
复制代码

  1. sns.palplot(sns.color_palette('hls',8))#8个颜色,色度比较亮
复制代码

  1. sns.palplot(sns.color_palette('Blues'))
复制代码
 

  1. sns.palplot(sns.color_palette('Greens_r'))
复制代码

  1. sns.palplot(sns.light_palette('green'))
复制代码

  1. sns.palplot(sns.dark_palette('purple'))
复制代码
 

   xkcd_rgb 颜色 
          从xkcd_rgb这产生了一组颜色https://xkcd.com/color/rgb/,可以利用xkcd_rgb在seaborn中引用它们
  1. sns.xkcd_palette(['dark pink','algae','spring green','greyish blue'])
复制代码
 

三、画图 

   常见方法
  

  • barplot方法 单独绘制条形图
  • catplot方法 可以条形图、散点图、盒图、小提亲图、等
  • countplot方法 统计数量
  3.1、柱状图

  1. seaborn.barplot(data=None,  x=None, y=None, hue=None, color=None, palette=None)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组color用于变量的差异级别的颜色。应该 可以是可以表明的 ,大概是 字典将色调级别映射到 matplotlib 颜色。palette用于绘制添补颜色的原始饱和度的比例。大 面片通常利用不饱和的颜色看起来更好,但假如您渴望颜色与输入值美满匹配,请将其设置为。1 3.1.1、通例柱状图

  1. import seaborn as sns
  2. import pandas as pd
  3. # 示例数据
  4. tips=pd.read_csv('tips.csv')
  5. # 单变量柱状图
  6. sns.barplot(x="day", y="total_bill", data=tips)
  7. # 显示图表
  8. plt.show()
复制代码

 3.1.2、横向条形图

  1. import seaborn as sns
  2. import pandas as pd
  3. # 示例数据
  4. tips=pd.read_csv('tips.csv')
  5. # 单变量柱状图
  6. sns.barplot(x="total_bill", y="day", data=tips)
  7. # 显示图表
  8. plt.show()
复制代码

3.1.3、分组条图

  1. import seaborn as sns
  2. import pandas as pd
  3. # 示例数据
  4. tips=pd.read_csv('tips.csv')
  5. import seaborn as sns
  6. # 分组柱状图
  7. sns.barplot(x="day", y="total_bill", hue="sex", data=tips)
  8. # 显示图表
  9. plt.show()
复制代码

3.1.4、设置颜色

  1. import seaborn as sns
  2. # 示例数据
  3. tips=pd.read_csv('tips.csv')
  4. # 设置颜色
  5. sns.barplot(x="day", y="total_bill", data=tips,color='salmon')
  6. sns.barplot(x="day", y="total_bill", hue="sex", data=tips,palette='dark:salmon')
  7. # 显示图表
  8. plt.show()
复制代码

3.1.5、 统计数量

  1. seaborn.countplot(data=None, *, x=None, y=None, hue=None, color=None, palette=None)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组color用于变量的差异级别的颜色。应该 可以是可以表明的 ,大概是 字典将色调级别映射到 matplotlib 颜色。palette用于绘制添补颜色的原始饱和度的比例。大 面片通常利用不饱和的颜色看起来更好,但假如您渴望颜色与输入值美满匹配,请将其设置为。1
  1. import seaborn as sns
  2. import matplotlib.pyplot as plt
  3. import pandas as pd
  4. tips = pd.read_csv('tips.csv')  
  5. # 通过按天数对数据进行分组并计数
  6. # display(tips.groupby('day').count())  
  7. # 使用ountplot 方法绘制当天小费数量的条形图  
  8. sns.countplot(x="day", data=tips)  
  9. # 显示绘制的图形  
  10. plt.show()
复制代码

3.2、直方图

方法


  • histplot方法 绘制单变量或双变量直方图来表现数据集的分布
  • displot方法 绘制直方图、核密度图。可以比力多个变量分布环境
  1. seaborn.histplot(data=None,x=None, y=None, hue=None, bins='auto',multiple='layer', element='bars',  kde=False, palette=None,color=None)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组color用于变量的差异级别的颜色。应该 可以是可以表明的 ,大概是 字典将色调级别映射到 matplotlib 颜色。palette用于绘制添补颜色的原始饱和度的比例。大 面片通常利用不饱和的颜色看起来更好,但假如您渴望颜色与输入值美满匹配,请将其设置为。1bins通用 bin 参数,可以是引用规则的名称, 分箱数或分箱的分隔线。multiple 语义映射创建子集时分析多个元素的方法。 仅与单变量数据相干。
{“layer”, “减淡”, “stack”, “fill”}
elment 直方图统计量的可视化体现情势。 仅与单变量数据相干。
{“bars”, “step”, “poly”}
  1. seaborn.displot(data=None, *, x=None, y=None, hue=None, row=None, col=None, weights=None, kind='hist', rug=False, rug_kws=None, log_scale=None, legend=True, palette=None, hue_order=None, hue_norm=None, color=None, col_wrap=None, row_order=None, col_order=None, height=5, aspect=1, facet_kws=None, **kwargs)
复制代码
row界说子集以在差异 facet 上绘制的变量。
col界说子集以在差异 facet 上绘制的变量。
3.2.1、通例直方图

  1. sns.histplot(tips['total_bill'])
复制代码
 

  1. sns.displot(tips['total_bill'])
复制代码
3.2.2、核密度估计

        核密度估计的作用是用来估计概率密度函数的,它可以用来形貌随机变量的密度分布
  1. sns.histplot(tips['total_bill'],kde=True)
  2. sns.displot(tips['total_bill'], kde=True)
复制代码
 

3.2.3、多变量直方图

  1. multiple='layer' # 默认值,以层叠的形式展示
  2. multiple='dodge' # 以并列的形式展示
  3. multiple='stack' # 以堆叠的形式展示
  4. multiple='fill' # 以百分比堆叠的形式展示
复制代码
  1. sns.histplot(x='total_bill', hue='sex', data=tips)
复制代码
 

  1. sns.histplot(x='total_bill', hue='sex', data=tips, multiple='stack')
复制代码
 

  1. sns.histplot(x='total_bill', hue='sex', data=tips, multiple='dodge')
复制代码
 

  1. sns.histplot(x='total_bill', hue='sex', data=tips, multiple='fill')
复制代码
 

3.2.4、修改一些参数

  1. sns.histplot(x='total_bill', data=tips, bins=20, color='skyblue', edgecolor='black', linewidth=1.2)
  2. sns.displot(x='total_bill', data=tips, bins=20, color='skyblue', edgecolor='black', linewidth=1.2)
复制代码
 

3.2.5、 累积直方图

  1. sns.histplot(x='total_bill', data=tips, element='step')
  2. sns.displot(x='total_bill', data=tips, element='step',col='time')
复制代码
 

3.3、折线图

方法


  • lineplot方法 单独绘制折线图
  • relplot方法 绘制折线图、散点图
  1. seaborn.lineplot(data=None, x=None, y=None, hue=None)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组
  1. seaborn.relplot(data=None, *, x=None, y=None, hue=None, row=None, col=None kind='scatter')
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组row界说子集以在差异 facet 上绘制的变量。col界说子集以在差异 facet 上绘制的变量。kind要绘制的情节范例,对应于 seaborn 关系情节。 选项包罗 或 。"scatter""line"
  1. sns.lineplot(x=[1,2,3,4,5],y=[1,2,3,4,5])
  2. sns.relplot(x=[1,2,3,4,5],y=[1,2,3,4,5],kind='line')
复制代码

  1. import seaborn as sns
  2. # 示例数据
  3. tips = pd.read_csv('tips.csv')  
  4. sns.lineplot(x="day", y="total_bill", data=tips)
  5. sns.relplot(x="day", y="total_bill", data=tips, kind='line')
  6. # 多变量折线图
  7. sns.lineplot(x="day", y="total_bill", data=tips,hue='time')
  8. sns.relplot(x="day", y="total_bill", data=tips,hue='time',kind='line')
  9. # 使用relplot绘制折线图
  10. sns.relplot(x="day", y="total_bill", data=tips,
  11.       kind='line',# 图像类型
  12.       hue='sex',# 分类变量
  13.       col='time') # 分图变量
复制代码
 

3.4、散点图

方法


  • scatterplot方法 重要用于绘制两个数值变量之间的散点图
  • relplot方法 可以绘制多种范例的关系图,包罗散点图
  1. seaborn.scatterplot(data=None, x=None, y=None, hue=None)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组
  1. seaborn.relplot(data=None, *, x=None, y=None, hue=None, row=None, col=None kind='scatter')
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组row界说子集以在差异 facet 上绘制的变量。col界说子集以在差异 facet 上绘制的变量。kind要绘制的情节范例,对应于 seaborn 关系情节。 选项包罗 或 。"scatter""line"
  1. import seaborn as sns
  2. # 加载数据
  3. tips=pd.read_csv('tips.csv')
  4. # 常规散点图
  5. sns.scatterplot(data=tips,x='total_bill', y='tip')
  6. sns.relplot( data=tips, x='total_bill', y='tip',kind='scatter')
  7. # 多组散点图
  8. sns.scatterplot(data=tips,x='total_bill', y='tip', hue='smoker')
  9. sns.relplot(data=tips,x='total_bill', y='tip', hue='smoker')
  10. # 多变量散点图
  11. sns.relplot(data=tips,x='total_bill', y='tip', hue='smoker',col='time')
复制代码
 

3.5、分散散点图

方法


  • stripplot方法 利用抖动功能绘制分类散点图,以淘汰太过画图
  • swarmplot方法 绘制分类散点图,并将点调解为不重叠
  • catplot方法 可以绘制以上2种图,而且可以分图
  1. seaborn.stripplot(data=None, *, x=None, y=None, hue=None,dodge=False)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组dodge当一个变量被赋值时,将其设置为 will 沿分类分隔差异色相级别的条带 轴并缩小分配给每个条带的空间量。否则 每个级别的点将绘制在同一条带中。
  1. seaborn.swarmplot(data=None, *, x=None, y=None, hue=None,dodge=False)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组dodge当一个变量被赋值时,将其设置为 will 沿分类分隔差异色相级别的条带 轴并缩小分配给每个条带的空间量。否则 每个级别的点将绘制在同一条带中。
  1. seaborn.catplot(data=None, *, x=None, y=None, hue=None, row=None, col=None, kind='strip')
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组row界说子集以在差异 facet 上绘制的变量。col界说子集以在差异 facet 上绘制的变量。kind要绘制的画图范例对应于分类的名称 轴级画图功能。选项有: “strip”, “swarm”, “box”, “violin”, “boxen”、“point”、“bar” 或 “count”。
  1. import seaborn as sns
  2. import pandas as pd
  3. tips=pd.read_csv('tips.csv')
  4. sns.catplot(y="total_bill", x="day", data=tips,hue='sex',dodge=True,marker="D",col='smoker')
复制代码

  1. sns.swarmplot(y="total_bill", x="day", data=tips,hue='sex',marker="v")
复制代码
 

  1. sns.catplot(y="total_bill", x="day", data=tips,hue='sex',marker="v",col='smoker',kind='swarm')
复制代码
3.6、盒图

方法


  • boxplot方法
  • catplot方法
  1. seaborn.boxplot(data=None, *, x=None, y=None, hue=None,fill=True,width=0.8, gap=0,notch=False)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组fill界说子集以在差异 facet 上绘制的变量。gap箱体隔断width箱体宽度notch箱体是否缺口
  1. seaborn.catplot(data=None, *, x=None, y=None, hue=None, row=None, col=None, kind='strip')
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组row界说子集以在差异 facet 上绘制的变量。col界说子集以在差异 facet 上绘制的变量。kind要绘制的画图范例对应于分类的名称 轴级画图功能。选项有: “strip”, “swarm”, “box”, “violin”, “boxen”、“point”、“bar” 或 “count”。
  1. import seaborn as sns
  2. import pandas as pd
  3. tips = pd.read_csv('tips.csv')
  4. sns.boxplot(x="day", y="total_bill", data=tips,hue="smoker",
  5.       fill=False, # 填充箱体,默认为True
  6.       gap=0.1,  # 箱体间隔
  7.       width=0.5, # 箱体宽度
  8.       notch=True # 箱体是否缺口
  9.        )
复制代码

  1. sns.catplot(x="day", y="total_bill", data=tips,kind="box",col="sex")
复制代码

3.7、小提琴图

        提琴图的作用与箱形须线图雷同。它表现了 数据点按一个(或多个)变量分组后的分布环境。 与箱图差异的是,每一个小提琴图都是通过对底子分布的核密度估计来绘制的。

方法


  • violinplot方法 绘制单图小提琴
  • catplot方法 绘制多图小提琴图
  1. seaborn.violinplot(data=None, *, x=None, y=None, hue=None,split=False,  gap=0)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组split表现未镜像的分布,利用 时瓜代利用 。gap按此因子在方向轴上紧缩,以在减淡元素之间添加间隙。
  1. seaborn.catplot(data=None, *, x=None, y=None, hue=None, row=None, col=None, kind='strip')
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组row界说子集以在差异 facet 上绘制的变量。col界说子集以在差异 facet 上绘制的变量。kind要绘制的画图范例对应于分类的名称 轴级画图功能。选项有: “strip”, “swarm”, “box”, “violin”, “boxen”、“point”、“bar” 或 “count”。
  1. import seaborn as sns
  2. import pandas as pd
  3. tips=pd.read_csv('tips.csv')
  4. sns.violinplot(x="day", y="total_bill", data=tips,hue="smoker",fill=False,split=True,gap=0.1)  # 设置间隔
  5. sns.catplot(x="day", y="total_bill", data=tips,hue="smoker",kind="violin",col="sex")
复制代码

3.8、热力图

方法


  • heatmap方法
  1. seaborn.heatmap(data, *, vmin=None, vmax=None, cmap=None,annot=None, linewidths=0, cbar=True)
复制代码
函数形貌data可以欺压转换为 ndarray 的 2D 数据集。假如 Pandas DataFrame 时,索引/列信息将用于标志 列和行。vminvalues 来锚定颜色图,否则它们将从 data 和其他关键字参数vmaxvalues 来锚定颜色图,否则它们将从 data 和其他关键字参数camp从数据值到色彩空间的映射。假如未提供,则 default 将取决于是否设置。annot假如为 True,则在每个单位格中写入数据值。假如具有 与 雷同外形,则改用此函数来表明热图 的数据。请留意,DataFrames 将匹配位置,而不是索引。linewidth将分别每个单位格的线的宽度。cbar是否绘制颜色条。
  1. import seaborn as sns
  2. import matplotlib.pyplot as plt
  3. import pandas as pd
  4. flights = pd.read_csv('flights.csv')
  5. data=flights.pivot(index='month',columns='year',values='passengers')
  6. sns.heatmap(data,annot=True,fmt='d',linewidths=.5,cbar=True,vmin=200,vmax=400)
复制代码
  
3.9、点图

        点图用于探索和比力两个分类变量之间的关系
重要特点和利用场景包罗:

  • 中心趋势的体现: 点图通过在坐标轴上的点体现每个组别的中心趋势,通常是均值。这使得你可以直观地比力差异组别的中心位置。
  • 不确定性的展示: 除了点的位置体现中心趋势外,点图还通过垂直线(偏差棒)体现中心趋势的不确定性,通常是置信区间。这有助于相识估计值的精度。
  • 实用于两个分类变量: 点图的重要用途是比力两个分类变量之间的关系。一个分类变量通常用于横轴,另一个分类变量用于纵轴
方法


  • pointplot方法
  • catplot方法
  1. seaborn.pointplot(data=None, *, x=None, y=None, hue=None,markers=<default>, linestyles=<default>,dodge=False)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组markers用于每个级别的标志linestyles用于每个级别的线条样式。dodge将变量的每个级别的点分隔的 amount 分类轴。设置为 将应用较小的默认值。
  1. seaborn.catplot(data=None, *, x=None, y=None, hue=None, row=None, col=None, kind='strip')
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组row界说子集以在差异 facet 上绘制的变量。col界说子集以在差异 facet 上绘制的变量。kind要绘制的画图范例对应于分类的名称 轴级画图功能。选项有: “strip”, “swarm”, “box”, “violin”, “boxen”、“point”、“bar” 或 “count”。markers用于每个级别的标志linestyles用于每个级别的线条样式。dodge将变量的每个级别的点分隔的 amount 分类轴。设置为 将应用较小的默认值。
  1. import seaborn as sns
  2. import matplotlib.pyplot as plt
  3. tips = pd.read_csv('tips.csv')
  4. sns.pointplot(x="day", y="total_bill", data=tips,hue='sex',markers=['o','s'],linestyles=['-','--'],dodge=True)
复制代码

  1. sns.catplot(x="day", y="total_bill", data=tips,hue='sex',markers=['o','s'],linestyles=['-','--'],dodge=True,kind='point',col='smoker')
复制代码
 

3.10、核密度图

核密度估计图是一种用于估计概率密度函数的非参数方法
核密度估计图可以资助明确数据的分布环境,尤其在连续变量的环境下,它提供了一种平滑的、连续的概率密度估计
重要特点和作用包罗:

  • 连续概率密度估计: 核密度估计图通过在每个数据点附近放置核(通常是高斯核)来估计连续概率密度函数。如许,我们可以看到整个变量范围内的概率密度厘革
  • 平滑曲线: 天生的图表是一条平滑的曲线,反映了数据的团体趋势。相对于直方图,核密度估计提供了更连续、更平滑的概率密度体现
  • 用于多变量分布: 核密度估计图也可以用于可视化多个变量的团结分布环境
方法


  • kdeplot方法 核密度图
  • displot方法 支持多组、多图
  1. seaborn.kdeplot(data=None, *, x=None, y=None, hue=None, palette=None,  fill=None, multiple='layer')
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组palette选择映射语义时要利用的颜色的方法。 字符串值将转达给 .列表或字典值 隐含分类映射,而 colormap 对象隐含数值映射。fill假如为 True,则添补单变量密度曲线下或之间的地区 二元等值线。假如为 None,则默认值取决于 。multiple在语义映射创建子集时绘制多个元素的方法。 仅与单变量数据相干。
  1. import seaborn as sns
  2. tips = pd.read_csv('tips.csv')
  3. sns.kdeplot(data=tips, x="total_bill", hue="sex",multiple="stack",alpha=.5,linewidth=0,palette="Blues",fill=True)
复制代码
  1. seaborn.displot(data=None, *, x=None, y=None, hue=None, row=None, col=None,kind='kde)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组row界说子集以在差异 facet 上绘制的变量。col界说子集以在差异 facet 上绘制的变量。kind可视化数据的方法。选择底子画图函数 并确定其他有用参数集。  

  1. sns.displot(data=tips, x="total_bill", y="tip",fill=True,kind='kde',col='time')
复制代码

3.11、回归图

线性回归图是用于可视化线性回归分析结果的图表。它通常包罗散点图、回归线和偏差条,以便直观地展示自变量和因变量之间的线性关系。线性回归图的重要构成部分包罗:

  • 散点图(Scatter Plot): 在图中绘制了自变量和因变量的散点,每个点代表一个观测数据。散点图资助我们直观地观察变量之间的分布和大概的关系
  • 回归线(Regression Line): 通过回归分析,得到了一条最佳拟合的直线,它代表了自变量和因变量之间的线性关系。回归线的斜率体现了这种关系的方向和强度
  • 偏差条(Error Bars): 偏差条通常在每个点附近绘制,用于体现每个观测值的偏差范围。这有助于相识拟合程度和数据的离散程度
  • 回归方程信息: 大概包罗回归方程、截距、斜率等信息,以提供更具体的模子表明
方法


  • sns.regplot方法
  • sns.lmplot方法 支持分组、分图
   留意
  大概须要安装 statsmodels模块,安装完模块要重启当前的ipynb文件环境
  pip install statsmodels
  1. seaborn.regplot(data=None, *, x=None, y=None, marker='o', scatter_kws=None)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。marker用于散点图字形的标志。sactter_kws要转达给 和 的其他关键字参数。plt.scatterplt.plot
  1. seaborn.lmplot(data, *, x=None, y=None, hue=None, col=None, row=None)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组row界说子集以在差异 facet 上绘制的变量。col界说子集以在差异 facet 上绘制的变量。
  1. sns.regplot(data=tips,x='tip',y='total_bill',
  2.       scatter_kws={'s':50,'alpha':0.3,'color':'skyblue'},
  3.       marker='s'
  4.        )
复制代码
 

  1. sns.lmplot(data=tips,x='tip',y='total_bill',hue='sex',col='time')
复制代码

3.12、团结图

方法


  • jointplot方法
  1. seaborn.jointplot(data=None, *, x=None, y=None, hue=None, kind='scatter',marginal_kws=None)
复制代码
函数形貌data用于画图的数据集。x用于绘制长格式数据的输入。y用于绘制长格式数据的输入。hue用于绘制长格式数据的输入。对原有的属性举行更加过细的分组kind scatter,kde,hist,reg,hex,resid
marginal_kwsplot 组件的其他关键字参数。
  1. sns.jointplot(data=tips,x='tip',y='total_bill')
  2. sns.jointplot(data=tips,x='tip',y='total_bill',kind='scatter') # kind='scatter' 散点图
  3. sns.jointplot(data=tips,x='tip',y='total_bill',kind='kde') # 盒密度
  4. sns.jointplot(data=tips,x='tip',y='total_bill',kind='hist') # 直方图
  5. sns.jointplot(data=tips,x='tip',y='total_bill',kind='reg') # 回归图+直方图
  6. sns.jointplot(data=tips,x='tip',y='total_bill',kind='hex') # 六角+直方图
  7. sns.jointplot(data=tips,x='tip',y='total_bill',kind='resid') # 残差+直方图
  8. sns.jointplot(data=tips,x='tip',y='total_bill',hue='sex',
  9.        palette='dark:red',kind='hist',marginal_kws={'fill':False,'bins':10})
复制代码
 



3.13、成队画图

方法
        pairplot方法
  1. seaborn.pairplot(data, *, hue=None, vars=None, diag_kind='auto')
复制代码
函数形貌data用于画图的数据集。hue分组vars变量 中的变量,否则将每列与 数值数据范例。diag_kind对角线子图的 Kind plot。假如为 'auto'
  1. sns.pairplot(data=tips,vars=["total_bill","tip"],hue="smoker",kind='scatter')
  2. sns.pairplot(data=tips,vars=["total_bill","tip"],hue="smoker",
  3.        kind='hist',  # 设置除中线图形类型
  4.        diag_kind='kde', # 设置中线图形类型
  5.        )
复制代码
 

3.14、绘制图表到子图

  1. import seaborn as sns
  2. from matplotlib import pyplot as plt
  3. import pandas as pd
  4. tips = pd.read_csv('tips.csv')
  5. fig,ax= plt.subplots(2,2,figsize=(20,8))
  6. sns.lineplot(x="total_bill", y="tip", data=tips, ax=ax[0,0])
  7. sns.lineplot(x="size", y="tip", data=tips, ax=ax[0][1])
复制代码

3.15、利用FacetGrid画图

参数形貌对应利用了FacetGrid函数plt.plot/sns.lineplot折线图sns.relplot(kind='line')plt.hexbin六边形图sns.jointplot(kind='hex')plt.hist/sns.histplot直方图sns.distplot()plt.scatter/sns.scatterplot散点图sns.relplot(kind='scatter')sns.stripplot分类散点图sns.catplot(kind='strip')sns.swarmplot分散分类散点图sns.catplot(kind='swarm')sns.boxplot箱图sns.catplot(kind='box')sns.violinplot小提琴图sns.catplot(kind='violin')sns.pointplot点线图sns.catplot(kind='point')sns.barplot条图sns.catplot(kind='bar')sns.countplot数量统计条图sns.catplot(kind='count')sns.regplot回归线图sns.lmplot()别的别的别的
  1. import seaborn as sns
  2. import pandas as pd
  3. tips=pd.read_csv('tips.csv')
复制代码
绘制单图表 

  1. g = sns.FacetGrid(tips)
  2. g.map(sns.scatterplot, "total_bill", "tip")
  3. g.map(sns.regplot, "total_bill", "tip")
复制代码

绘制多组图表

  1. g = sns.FacetGrid(tips,col="time",row="smoker",hue='sex',
  2.          palette="Set1", # 设置颜色
  3.          height=4, aspect=1.5, # 设置大小
  4.          hue_kws={"marker": ["*", "s"]}, # 设置标记
  5.           )
  6. g.map(sns.regplot, "total_bill", "tip")
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表