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

  运行结果:

  

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM