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

      运行结果:

      

      

    清澈的爱,只为中国
  • 相关阅读:
    ICO图标的制作、下载
    网页Loading,让页面加载完再显示
    鹏城之行
    The shit live,learn to give up!
    缘分
    一篇网络文章,能否让我真正顿悟???
    李开复给中国学生的第三封信:成功、自信、快乐
    Uncountable missing,missing...
    李开复给中国学生的第五封信:做个积极主动的你
    李开复给中国学生的第四封信:大学应这样过
  • 原文地址:https://www.cnblogs.com/dan-baishucaizi/p/9471763.html
Copyright © 2020-2023  润新知