前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据可视化(15)-Seaborn系列 | 双变量关系图jointplot()

数据可视化(15)-Seaborn系列 | 双变量关系图jointplot()

原创
作者头像
数据分析可视化
修改2019-10-08 11:14:53
5.4K0
修改2019-10-08 11:14:53
举报

双变量关系图

在默认情况下双变量关系图是散点图与直方图组合的联合直方图,可以通过设置kind来改变联合直方图。

函数原型

代码语言:txt
复制
seaborn.jointplot(x, y, data=None, kind='scatter', 
                  stat_func=None, color=None, height=6,
                  ratio=5, space=0.2, dropna=True, 
                  xlim=None, ylim=None, joint_kws=None,
                  marginal_kws=None, annot_kws=None, **kwargs)

参数解读

表1
表1
代码语言:txt
复制
x,y,hue:数据字段变量名(如上表,date,name,age,sex为数据字段变量名)
data: DataFrame

kind:{"scatter"| "reg"| "resid"| "kde"| "hex"}
作用:指定要绘制的类型

color : matplotlib color

height : 数字
作用:指定图的大小(图是正方形的)

ratio:数字
作用:指定主轴(x,y轴)与边缘轴(正方形四边除x,y轴外的其它轴)高度的比率

space:数字
作用:指定主轴与边缘轴之间的空间

dropna : bool
作用:如果为True,则删除x和y中缺少的观测值

案例教程

代码语言:txt
复制
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格样式
sns.set(style="white", color_codes=True)
# np.random.seed(num),指定了num则表示生成的随机数是可预测的
np.random.seed(0)
# 构建数据
tips = sns.load_dataset("tips")
"""
案例1:
绘制散点图,边缘为直方图:联合直方图
"""
sns.jointplot(x="total_bill", y="tip", data=tips)
plt.show()
代码语言:txt
复制
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格样式
sns.set(style="white", color_codes=True)
# np.random.seed(num),指定了num则表示生成的随机数是可预测的
np.random.seed(0)
# 构建数据
tips = sns.load_dataset("tips")
"""
案例2:
在联合添加回归和核密度拟合
"""
sns.jointplot("total_bill", "tip", data=tips, kind="reg")
plt.show()
代码语言:txt
复制
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格样式
sns.set(style="white", color_codes=True)
# np.random.seed(num),指定了num则表示生成的随机数是可预测的
np.random.seed(0)
# 构建数据
tips = sns.load_dataset("tips")
"""
案例3:
使用六边形点代替联合直方图中的圆形散点
"""
sns.jointplot("total_bill", "tip", data=tips, kind="hex")
plt.show()
代码语言:txt
复制
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格样式
sns.set(style="white", color_codes=True)
# np.random.seed(num),指定了num则表示生成的随机数是可预测的
np.random.seed(0)
# 构建数据
iris = sns.load_dataset("iris")
"""
案例4:
将散点图和直方图均替换为核密度估计
"""
sns.jointplot("sepal_width", "petal_length", data=iris,
              kind="kde", space=0, color="g")
plt.show()
代码语言:txt
复制
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格样式
sns.set(style="white", color_codes=True)
# np.random.seed(num),指定了num则表示生成的随机数是可预测的
np.random.seed(0)
# 构建数据
iris = sns.load_dataset("iris")
"""
案例5:
绘制散点图,并添加联合密度估计
"""
g = (sns.jointplot("sepal_length", "sepal_width",
                   data=iris, color="k")
     .plot_joint(sns.kdeplot, zorder=0, n_levels=6))
plt.show()
代码语言:txt
复制
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格样式
sns.set(style="white", color_codes=True)
"""
案例6:
随机生成300个(x,y)二维数据,并指定x,y轴
"""
x, y = np.random.randn(2, 300)
(sns.jointplot(x, y, kind="hex").set_axis_labels("x", "y"))
plt.show()
代码语言:txt
复制
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格样式
sns.set(style="white", color_codes=True)
# np.random.seed(num),指定了num则表示生成的随机数是可预测的
np.random.seed(0)
# 构建数据
tips = sns.load_dataset("tips")
"""
案例7:
通过指定height来设置图的大小
"""
sns.jointplot("total_bill", "tip", data=tips,
              height=5, ratio=3, color="g")
plt.show()
代码语言:txt
复制
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
#设置风格样式
sns.set(style="white", color_codes=True)
# np.random.seed(num),指定了num则表示生成的随机数是可预测的
np.random.seed(0)
# 构建数据
tips = sns.load_dataset("tips")
"""
案例8:
其他一些参数的设置效果
"""
sns.jointplot("petal_length", "sepal_length", data=iris,
              marginal_kws=dict(bins=15, rug=True),
              annot_kws=dict(stat="r"),
              s=40, edgecolor="w", linewidth=1)
plt.show()

案例地址

案例代码已上传:Github https://github.com/Vambooo/SeabornCN

整理制作:数据分析与可视化学研社

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 双变量关系图
  • 函数原型
  • 参数解读
  • 案例教程
  • 案例地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档