Python数据可视化库seaborn ------ 两维数据间的分布关系;多维数据间的分布关系; 绘制回归关系;用DataFrame数据画图;根据某属性的不同类别绘制曲线;

观测两个变量之间的分布关系 ------ 最好用散点图

  两个便量间的分布关系:

1 # 生成一个多维正态分布的随机数,分别传入参数均值和协方差矩阵
2 mean, cov = [0, 1], [(1, .5), (.5, 1)]
3 data = np.random.multivariate_normal(mean, cov, 200)
4 df = pd.DataFrame(data, columns=["x", "y"])
5 sns.jointplot(x="x", y="y", data=df)
6 # 在图中添加回归线
7 sns.jointplot(x="x", y="y", data=df, kind="reg")
8 plt.show()

  运行结果:

   

  用  “类蜂窝”  结构展示数据的分布:

1 x, y = np.random.multivariate_normal(mean, cov, 1000).T
2 with sns.axes_style("white"):
3     sns.jointplot(x=x, y=y, kind="hex", color="k")
4 plt.show()

  运行结果:

  

多维数据间的分布关系

1 iris = sns.load_dataset("iris")
2 sns.pairplot(iris)
3 plt.show()

  运行结果:

  

 绘制回归关系

  regplot()和lmplot()都可以绘制回归关系,推荐regplot()

1 tips = sns.load_dataset("tips")
2 print(tips.head())
3 sns.regplot(x="total_bill", y="tip", data=tips)
4 sns.lmplot(x="total_bill", y="tip", data=tips)
5 plt.show()

  运行结果:

  

   

用DataFrame数据画图

  用  "dataset == 'I' "  的数据画图;用"dataset == 'II' "  的数据画图

 1 anscombe = sns.load_dataset("anscombe")
 2 print(anscombe.head())
 3 print(type(anscombe))
 4 # ci 置信区间    query 查询布尔表达式所在的数据; scatter_kws={"s": 80}设置点的大小
 5 sns.regplot(x="x", y="y", data=anscombe.query("dataset == 'I'"),
 6            ci=None, scatter_kws={"s": 80})
 7 # order=2 表示用二次多项式拟合
 8 sns.lmplot(x="x", y="y", data=anscombe.query("dataset == 'II'"),
 9            ci=None, order=2, scatter_kws={"s": 40})
10 plt.show()

  运行结果:

  

  

根据某属性的不同类别绘制曲线

 根据一个属性按类别绘制图像

1 tips = sns.load_dataset("tips")
2 sns.lmplot(x="total_bill", y="tip", hue="smoker", data=tips)
3 # hue  列名分割
4 sns.lmplot(x="total_bill", y="tip", hue="smoker", data=tips,
5            markers=["o", "*"], palette="Set1")
6 plt.show()

  运行结果:

  

 按两个属性的类别绘制,

   这里 hue 参数指定分类单调属性;col="time" 指定绘制图的时候将time的类别绘制在一行,如time有两个类别,

就绘制两列,如果加一个参数row,那么row指定的属性有几个类别就会绘制几行。

1 sns.lmplot(x="total_bill", y="tip", hue="smoker", col="time", data=tips)
2 plt.show()

  

1 sns.lmplot(x="total_bill", y="tip", hue="smoker",
2            col="time", row="sex", data=tips)
3 plt.show()

  运行结果:

  

  ax参数会改变坐标的缩放;如果指定的col参数对应的属性有4个类别,那么画出来就是1行4列,这样不太美观,

我们可以用col_wrap=2 设定为2行。aspect=.5 你也可以使用这个参数设置长宽比。size参数已经停用,请使用

height表示“size”。

1 f, ax = plt.subplots(figsize=(5, 5))
2 sns.regplot(x="total_bill", y="tip", data=tips, ax=ax)
3 plt.show()
4 sns.regplot(x="total_bill", y="tip", data=tips)
5 plt.show()
6 sns.lmplot(x="total_bill", y="tip", col="day", 
7            data=tips, col_wrap=2, height=4)
8 plt.show()

  运行结果:

  

  

清澈的爱,只为中国
原文地址:https://www.cnblogs.com/dan-baishucaizi/p/9471763.html