axesSub = sns.boxplot(x='species', y='sepal_length', data=iris)
axesSub = sns.stripplot(x='species', y='sepal_length', data=iris, ax=axesSub) # ax=axesSub,指定坐标性, 在之前箱型图基础上,继续绘制条带图
axesSub = sns.lineplot(x='species', y='sepal_length', data=iris, ax=axesSub) # ax=axesSub,指定坐标性, 在之前箱型图基础上,继续绘制折线图
fig, ax =plt.subplots(1,3,constrained_layout=True, figsize=(12, 3))
axesSub = sns.boxplot(x="species", y="sepal_length", data=iris, ax=ax[0])
axesSub.set_title('boxplot')
axesSub = sns.stripplot(x="species", y="sepal_length", data=iris, ax=ax[1])
axesSub.set_title('stripplot')
axesSub = sns.histplot(x="sepal_length", data=iris, ax=ax[2])
_ = axesSub.set_title('histplot')
hue:将绘图的不同面映射为不同的颜色
hue_order:字符串组成的list,设置hue后设置各颜色顺序
hue_kws:要插入到绘图调用中的其他关键字参数,以使其他绘图属性在色调变量的不同级别(例如散点图中的标记)之间变化。例如按颜色使用不同标记,hue_kws={"marker": ["o", "s", "D"]}
palette:调色板
vars: 同时指定x轴、y轴绘图字段,否则使用所有数值型字段
x_vars:指定x轴绘图字段
y_vars:指定y轴绘图字段
height标量,可选,每个刻面的高度(以英寸为单位)
aspect:标量,可选,aspect 和 height 的乘积得出每个刻面的宽度(以英寸为单位)
despine:布尔值,可选,从图中移除顶部和右侧外边框。
dropna:布尔值,可选,在绘图之前删除数据中的缺失值。
3.1 map方法:指定绘图方法¶
PairGrid所有参数中,只有data是必传参数,实例化时,seaborn会根据传入数据集的各个字段情况,绘制n行n列个坐标系,但仅限于绘制坐标系,坐标系中并未有任何图像,后续需通过调用map方法指定绘图方法后才会完成绘图。注意,在map方法文档中明确说明,此方法的作用是用同一方法在所有子图进行绘图,所以PairGird类绘图的所有子图,都是同类图表。
PairGrid类实例化时,只传递data参数,则绘制所有字段的子图,继续通过map方法传递sns.scatterplot作为绘图方法绘制散点图,当然,也可以传入其他绘图方法,绘制其他图形。在对角线上的图形,由于x轴和y轴都是同一字段,所以图形呈45度角直线,但并无实际意义。
g = sns.PairGrid(iris, vars=["sepal_length", "sepal_width"],height=1.5)
g = g.map(sns.scatterplot)
3.4 g.map_diag()和g.map_offdiag():指定对角线和非对角线的绘图方法¶
g.map_diag()和g.map_offdiag()是与g.map类似的方法,区别在于g.map_diag()用于指定对角线上子图绘图方法,g.map_offdiag()用于指定非对角线上绘图方法,而g.map一次性指定所有子图绘图方法。
例如,非对角线绘制散点图,对角线上绘制直方图,可以这么做:
g = sns.PairGrid(iris, hue="species")
g.map_diag(sns.histplot) #指定对角线绘制直方图
g = g.map_upper(sns.scatterplot) # 指定上三角绘制散点图
g = g.map_lower(sns.kdeplot) # 指定下三角绘制核密度图
row, col, hue:定义数据子集的变量,这些数据将绘制在网格中的不同面上。row(行)纵向,col(列)横向,hue:颜色
col_wrap:每行最多显示子图个数
height标量,可选,每个刻面的高度(以英寸为单位)
aspect:标量,可选,aspect 和 height 的乘积得出每个刻面的宽度(以英寸为单位)
despine:布尔值,可选,从图中移除顶部和右侧外边框。
dropna:布尔值,可选,在绘图之前删除数据中的缺失值。
palette:颜色面板
row_order:字段显示顺序
col_order:字段显示顺序
hue_order:字段显示顺序
hue_kws:要插入到绘图调用中的其他关键字参数,以使其他绘图属性在色调变量的不同级别(例如散点图中的标记)之间变化。例如按颜色使用不同标记,hue_kws={"marker": ["o", "s", "D"]}
g = sns.FacetGrid(tips, col="sex", hue="smoker")
g.map(sns.scatterplot, "total_bill", "tip")
g = g.add_legend()
g = sns.FacetGrid(tips, col="size", hue="smoker", col_wrap=4) # 每行最多显示4个子图,所以分两行显示了,第二行2个子图
g.map(sns.scatterplot, "total_bill", "tip")
g = g.add_legend()
g = sns.FacetGrid(tips, col="time", margin_titles=True)
g.map_dataframe(sns.scatterplot, x="total_bill", y="tip")
g.refline(y=tips["tip"].median())
n = len(data)
ax = plt.gca()
ax.text(.1, .6, f"N = {n}", transform=ax.transAxes)
g = sns.FacetGrid(tips, col="time")
g.map_dataframe(sns.scatterplot, x="total_bill", y="tip")
g.map_dataframe(annotate)