seaborn系列 (15) | 双变量关系图jointplot()

mac2022-06-30  22

目录

双变量关系图函数原型参数解读案例教程案例地址

双变量关系图

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

函数原型

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)

参数解读

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中缺少的观测值

案例教程

案例代码已上传:Github地址

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()

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()

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()

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()

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()

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()

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()

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地址 Github地址https://github.com/Vambooo/SeabornCN

更多技术干货在公众号:数据分析与可视化学研社

最新回复(0)