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")
(盒图能够自动识别哪个变量是离散型,哪个是连续型,然后对连续型构造盒图。)
例如以下代码
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib as mpl
from pandas import Categorical
import matplotlib.pyplot as plt tips = sns.load_dataset("tips") #seaborn内置数据集,DaraFram类型
print(tips.head())
ordered_days = Categorical(["Thur", "Sun", "Fri", "Sat"])
print(type(ordered_days))
print(ordered_days)
g = sns.FacetGrid(tips, row="day", row_order=ordered_days, size=1.7, aspect=4)
g.map(sns.boxplot, "total_bill", "sex") plt.show()
运行结果如下,函数识别出sex是离散型变量,所以对sex进行分类,然后在每一个类别上对连续型变量total_bill构造盒图。
还可以用FacertGrid的palette参数给hue的列的不同类设置不同颜色,代码如下
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib as mpl
from pandas import Categorical
import matplotlib.pyplot as plt tips = sns.load_dataset("tips") #seaborn内置数据集,DaraFram类型
print(tips.head())
pal = dict(Lunch="seagreen", Dinner="gray")
g = sns.FacetGrid(data=tips, hue="time", palette=pal, size=5)
g.map(plt.scatter, "total_bill", "tip", s=50, alpha=0.7, linewidths=0.5, edgecolors="white")
g.add_legend()
plt.show()
运行结果如下
如果再设置marker参数,可指定用什么图标画散点,可以是三角形或圆形等
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib as mpl
from pandas import Categorical
import matplotlib.pyplot as plt tips = sns.load_dataset("tips") #seaborn内置数据集,DaraFram类型
print(tips.head())
pal = dict(Lunch="seagreen", Dinner="gray")
g = sns.FacetGrid(data=tips, hue="time", palette=pal, size=5, hue_kws={"marker":['^', 'v']})
g.map(plt.scatter, "total_bill", "tip", s=50, alpha=0.7, linewidths=0.5, edgecolors="white")
g.add_legend()
plt.show()
还有一些小调整:set_axis_labels()函数可以自定义x和y轴名字,set(xticks, yticks)可以自定义x和y轴的刻度。fig.subplots_adjust()函数可以调整子图之间
的间隔和距离边框的大小。edgecolors可以设置散点周围的边缘颜色。
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib as mpl
from pandas import Categorical
import matplotlib.pyplot as plt tips = sns.load_dataset("tips") #seaborn内置数据集,DaraFram类型
print(tips.head())
with sns.axes_style("white"):
g = sns.FacetGrid(tips, row="sex", col="smoker", margin_titles=True, size=2.5)
g.map(plt.scatter, "total_bill", "tip", color="#334488", edgecolors="white", lw=0.5)
g.set_axis_labels("Total_bill", "Tip")
g.set(xticks=[10, 30, 50], yticks=[2, 6, 10])
g.fig.subplots_adjust(wspace=0.25, hspace=0.25)
plt.show()
可以用PairGrid对数据中的列进行两两配对绘制散点图,当然也可以指定要配对的列。
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib as mpl
from pandas import Categorical
import matplotlib.pyplot as plt iris = sns.load_dataset("iris")
g = sns.PairGrid(data=iris, vars=["sepal_length", "sepal_width"], hue="species")
g.add_legend()
g.map_offdiag(plt.scatter)
g.map_diag(plt.hist)
plt.show()
函数PairGrid()中的vars参数指定要两两进行绘图的列,这些列是数据集的子列。map_offdiag和map_diag分别设置非对角的和对角的图使用的统计图类型。
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib as mpl
from pandas import Categorical
import matplotlib.pyplot as plt iris = sns.load_dataset("iris")
g = sns.PairGrid(data=iris, vars=["sepal_length", "sepal_width"], hue="species")
g.add_legend()
g.map_offdiag(plt.scatter)
g.map_diag(plt.hist)
plt.show()
FacertGrid()的使用的更多相关文章
随机推荐
- 随机发送n位数字+字母的验证码
''' 随机发送n位数字+字母的验证码 ''' import random def get_verified(length): code = '' for i in range(length): nu ...
- Jmeter启动jmeter-server.bat 报java.io.FileNotFoundException:rmi_keystore.jks 解决方法
解决方法:1.找到apache-jmeter-5.0\bin\jmeter.properties 2.修改server.rmi.ssl.disable=true (记得去除server.rmi.ssl ...
- Oracal数据库安装配置教程
官网注册账号登录 https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-windows- ...
- HDU-4185-Oil Skimming(最大匹配)
链接: https://vjudge.net/problem/HDU-4185 题意: Thanks to a certain "green" resources company, ...
- 如何用 Redis 统计独立用户访问量
众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer,当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过1 ...
- word和画图
文档和画图收费文档:edu.51cto.com/course/course_id-4992.htmledu.51cto.com/course/course_id-4991.html
- JPA学习(五、JPA_二级缓存)
框架学习之JPA(五) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...
- 牛客网 Chess ( 博弈 && 奇异局势 )
题目链接 分析 : 发现如果一开始就在边界或者位于对角线的位置上肯定是必胜态 从终点逆推,画出胜负表格,填一填,就会发现和奇异局势的前几项一样 然后打个奇异局势的表就能 AC 了 #include&l ...
- 洛谷 P4151 BZOJ 2115 [WC2011]最大XOR和路径
//bzoj上的题面太丑了,导致VJ的题面也很丑,于是这题用洛谷的题面 题面描述 XOR(异或)是一种二元逻辑运算,其运算结果当且仅当两个输入的布尔值不相等时才为真,否则为假. XOR 运算的真值表如 ...
- androi自定义自动换行的View(类似网页的标签Tag)
看来只有礼拜天才有时间写点博客啊,平时只能埋头苦干了.今天在公司加班,遇到一个需求,就是自动换行的TextView,有点像网页的tag标签,点击一下,就自动加上去了,不过这个是根据后台拿来的数据来显示 ...