zoukankan      html  css  js  c++  java
  • FacertGrid()的使用

    查看数据的前五行

    tips = sns.load_dataset("tips")

    tips.head()

     

    引入数据,布置横向画布

    g = sns.FacetGrid(tips, col='time')

     

     

    g = sns.FacetGrid(tips, col='time')
    g.map(plt.hist, "tip")  #以tip为横轴画柱状图

     

    g = sns.FacetGrid(tips, col="sex", hue="smoker")
    g.map(plt.scatter, "total_bill", "tip", alpha=.7)   #绘制散点图,设置横纵轴,设置透明度
    g.add_legend()                                                 #加上如下图标注的图例

     

     

    g = sns.FacetGrid(tips, row="smoker", col="time", margin_titles=True)              #设置行列布局方式
    g.map(sns.regplot, "size", "total_bill", color=".1", fit_reg=True, x_jitter=.1)         #fit_reg画出回归线,x_jitter为摆动程度

     

    画出柱形图

    g = sns.FacetGrid(tips, col="day", size=4, aspect=.5)
    g.map(sns.barplot, "sex", "total_bill")

     

     

    from pandas import Categorical

    ordered_days = tips.day.value_counts().index

    print(ordered_days)

    查看day的排列顺序

    CategoricalIndex(['Sat', 'Sun', 'Thur', 'Fri'], categories=['Thur', 'Fri', 'Sat', 'Sun'], ordered=False, dtype='category')

    重新设置行的排列顺序

    ordered_days = Categorical(["Thur", "Sun", "Fri", "Sat"])

    g = sns.FacetGrid(tips, row="day", row_order=ordered_days, size=1.7, aspect=4)
    g.map(sns.boxplot, "total_bill")

    (盒图能够自动识别哪个变量是离散型,哪个是连续型,然后对连续型构造盒图。)

    例如以下代码

     1 import seaborn as sns
     2 import numpy as np
     3 import pandas as pd
     4 import matplotlib as mpl
     5 from pandas import Categorical
     6 import matplotlib.pyplot as plt
     7 
     8 tips = sns.load_dataset("tips")   #seaborn内置数据集,DaraFram类型
     9 print(tips.head())
    10 ordered_days = Categorical(["Thur", "Sun", "Fri", "Sat"])
    11 print(type(ordered_days))
    12 print(ordered_days)
    13 g = sns.FacetGrid(tips, row="day", row_order=ordered_days, size=1.7, aspect=4)
    14 g.map(sns.boxplot, "total_bill", "sex")
    15 
    16 plt.show()

    运行结果如下,函数识别出sex是离散型变量,所以对sex进行分类,然后在每一个类别上对连续型变量total_bill构造盒图。

     还可以用FacertGrid的palette参数给hue的列的不同类设置不同颜色,代码如下

     1 import seaborn as sns
     2 import numpy as np
     3 import pandas as pd
     4 import matplotlib as mpl
     5 from pandas import Categorical
     6 import matplotlib.pyplot as plt
     7 
     8 tips = sns.load_dataset("tips")   #seaborn内置数据集,DaraFram类型
     9 print(tips.head())
    10 pal = dict(Lunch="seagreen", Dinner="gray")
    11 g = sns.FacetGrid(data=tips, hue="time", palette=pal, size=5)
    12 g.map(plt.scatter, "total_bill", "tip", s=50, alpha=0.7, linewidths=0.5, edgecolors="white")
    13 g.add_legend()
    14 plt.show()

    运行结果如下

    如果再设置marker参数,可指定用什么图标画散点,可以是三角形或圆形等

     1 import seaborn as sns
     2 import numpy as np
     3 import pandas as pd
     4 import matplotlib as mpl
     5 from pandas import Categorical
     6 import matplotlib.pyplot as plt
     7 
     8 tips = sns.load_dataset("tips")   #seaborn内置数据集,DaraFram类型
     9 print(tips.head())
    10 pal = dict(Lunch="seagreen", Dinner="gray")
    11 g = sns.FacetGrid(data=tips, hue="time", palette=pal, size=5, hue_kws={"marker":['^', 'v']})
    12 g.map(plt.scatter, "total_bill", "tip", s=50, alpha=0.7, linewidths=0.5, edgecolors="white")
    13 g.add_legend()
    14 plt.show()

    还有一些小调整:set_axis_labels()函数可以自定义x和y轴名字,set(xticks, yticks)可以自定义x和y轴的刻度。fig.subplots_adjust()函数可以调整子图之间

    的间隔和距离边框的大小。edgecolors可以设置散点周围的边缘颜色。

     1 import seaborn as sns
     2 import numpy as np
     3 import pandas as pd
     4 import matplotlib as mpl
     5 from pandas import Categorical
     6 import matplotlib.pyplot as plt
     7 
     8 tips = sns.load_dataset("tips")   #seaborn内置数据集,DaraFram类型
     9 print(tips.head())
    10 with sns.axes_style("white"):
    11     g = sns.FacetGrid(tips, row="sex", col="smoker", margin_titles=True, size=2.5)
    12 g.map(plt.scatter, "total_bill", "tip", color="#334488", edgecolors="white", lw=0.5)
    13 g.set_axis_labels("Total_bill", "Tip")
    14 g.set(xticks=[10, 30, 50], yticks=[2, 6, 10])
    15 g.fig.subplots_adjust(wspace=0.25, hspace=0.25)
    16 plt.show()

    可以用PairGrid对数据中的列进行两两配对绘制散点图,当然也可以指定要配对的列。

     1 import seaborn as sns
     2 import numpy as np
     3 import pandas as pd
     4 import matplotlib as mpl
     5 from pandas import Categorical
     6 import matplotlib.pyplot as plt
     7 
     8 iris = sns.load_dataset("iris")
     9 g = sns.PairGrid(data=iris, vars=["sepal_length", "sepal_width"], hue="species")
    10 g.add_legend()
    11 g.map_offdiag(plt.scatter)
    12 g.map_diag(plt.hist)
    13 plt.show()

    函数PairGrid()中的vars参数指定要两两进行绘图的列,这些列是数据集的子列。map_offdiag和map_diag分别设置非对角的和对角的图使用的统计图类型。

     1 import seaborn as sns
     2 import numpy as np
     3 import pandas as pd
     4 import matplotlib as mpl
     5 from pandas import Categorical
     6 import matplotlib.pyplot as plt
     7 
     8 iris = sns.load_dataset("iris")
     9 g = sns.PairGrid(data=iris, vars=["sepal_length", "sepal_width"], hue="species")
    10 g.add_legend()
    11 g.map_offdiag(plt.scatter)
    12 g.map_diag(plt.hist)
    13 plt.show()

  • 相关阅读:
    vue本地项目静态资源管理
    vue-resource的使用
    查看Python已安装的模块
    getpass密码输入模块
    css之浮动
    Linux之常用命令和部分解析
    css之vertical-align(盒子垂直对齐方式)
    Octave 里的 fminunc
    Octave /Matlab--Control Statements:for,while, if statement----Coursera ML笔记
    Octave环境的安装
  • 原文地址:https://www.cnblogs.com/loubin/p/11277597.html
Copyright © 2011-2022 走看看