当前位置:   article > 正文

seaborn系列 (2) | 散点图scatterplot()_seaborn scatter

seaborn scatter

本篇是《Seaborn系列》文章的第2篇.

散点图 scatterplot

seaborn.scatterplot()散点图

解读
可以通过调整颜色、大小和样式等参数来显示数据之间的关系。

函数原型

seaborn.scatterplot(x=None, y=None, hue=None,
                    style=None, size=None, data=None, 
                    palette=None, hue_order=None, hue_norm=None,
                    sizes=None, size_order=None, size_norm=None, 
                    markers=True, style_order=None, x_bins=None,
                    y_bins=None, units=None, estimator=None, 
                    ci=95, n_boot=1000, alpha='auto', x_jitter=None,
                    y_jitter=None, legend='brief', ax=None, **kwargs)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

参数解读

data: DataFrame

可选参数

x,y为数据中变量的名称;
作用:对将生成具有不同颜色的元素的变量进行分组。可以是分类或数字.

size:数据中的名称
作用:根据指定的名称(列名),根据该列中的数据值的大小生成具有不同大小的效果。可以是分类或数字。

style:数据中变量名称(比如:二维数据中的列名)
作用:对将生成具有不同破折号、或其他标记的变量进行分组。

palette:调试板名称,列表或字典类型
作用:设置hue指定的变量的不同级别颜色。

hue_order:列表(list)类型
作用:指定hue变量出现的指定顺序,否则他们是根据数据确定的。

hue_norm:tuple或Normalize对象

sizes:list dict或tuple类型
作用:设置线宽度,当其为数字时,它也可以是一个元组,指定要使用的最大和最小值,会自动在该范围内对其他值进行规范化。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

案例教程

案例代码已上传:Github地址

import matplotlib.pyplot as plt
import seaborn as sns; 
sns.set()
tips = sns.load_dataset("tips")
"""
案例1:散点图
"""
sns.scatterplot( x="total_bill", y="tip",data=tips)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述


import matplotlib.pyplot as plt
import seaborn as sns; 
sns.set()
tips = sns.load_dataset("tips")
"""
案例2:设置hue 根据设置的类别,产生颜色不同的点的散点图
eg.下图为根据time分类的散点图
"""
sns.scatterplot(x="total_bill", y="tip", hue="time",data=tips)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述


import matplotlib.pyplot as plt
import seaborn as sns; 
sns.set()
tips = sns.load_dataset("tips")
"""
案例3:设置hue 根据设置的类别,产生颜色不同的点的散点图,设置style,使其生成不同的标记的点
eg.下图为hue与style设置相同的分类的散点图
"""
sns.scatterplot(x="total_bill", y="tip",hue="time", style="time", data=tips)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述


import matplotlib.pyplot as plt
import seaborn as sns; 
sns.set()
tips = sns.load_dataset("tips")
"""
案例4:设置hue 根据设置的类别,产生颜色不同的点的散点图,设置style,使其生成不同的标记的点
eg.下图为hue与style设置不同的分类的散点图
"""
sns.scatterplot(x="total_bill", y="tip",hue="day", style="time", data=tips)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述


import matplotlib.pyplot as plt
import seaborn as sns; 
sns.set()
tips = sns.load_dataset("tips")
"""
案例5:设置size ,根据设置的类别,产生大小不同的点的散点图
"""
sns.scatterplot(x="total_bill", y="tip", size="time",data=tips)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

import matplotlib.pyplot as plt
import seaborn as sns; 
sns.set()
tips = sns.load_dataset("tips")
"""
案例6:同时设置hue和size,根据设置的类别,产生颜色和大小不同的点的散点图
"""
sns.scatterplot(x="total_bill", y="tip",hue="time", size="time",data=tips)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述


import matplotlib.pyplot as plt
import seaborn as sns; 
sns.set()
tips = sns.load_dataset("tips")
"""
案例7:同时设置hue和size,根据设置的类别,产生颜色和大小不同的点的散点图
不过这里的颜色使用的是Set2中的,palette="Set2",
"""
sns.scatterplot(x="total_bill", y="tip",
                hue="day", size="smoker",
                palette="Set2",
                data=tips)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在这里插入图片描述


import matplotlib.pyplot as plt
import seaborn as sns; 
sns.set()
tips = sns.load_dataset("tips")
"""
案例8:使用指定的标记
"""
markers = {"Lunch": "s", "Dinner": "X"}
sns.scatterplot(x="total_bill", y="tip", style="time",
                markers=markers,
                data=tips)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns; 
plt.close("all")
sns.set()
"""
案例10:
利用pandas构建时间序列数据,从2000-1-31开始,以月为频率,生成100条时间序列
"""
index = pd.date_range("2000-1-11", periods=100,
                      freq="m", name="date")
data = np.random.randn(100, 4).cumsum(axis=0)
wide_df = pd.DataFrame(data, index, ["a", "b", "c", "d"])
sns.scatterplot(data=wide_df)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在这里插入图片描述

案例地址

上述案例代码已上传:Github地址

Github地址https://github.com/Vambooo/SeabornCN
更多技术干货在公众号:数据分析与可视化学研社

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号