【python】seaborn可视化之FacetGrid()

准备:

import seaborn as sns
import pandas as pd
import numpy as np
from scipy import stats,integrate
import matplotlib.pyplot as plt
sns.set(color_codes = True)
np.random.seed(sum(map(ord,"distributions")))
x = np.random.normal(size=100)
sns.distplot(x,kde=False)
tips = sns.load_dataset("tips")
titanic = sns.load_dataset("titanic")
iris = sns.load_dataset("iris")

1、操作流程

  • 先sns.FacetGrid画出轮廓
  • 然后用map填充内容
g = sns.FacetGrid(tips,col='time')
g.map(plt.hist,"tip")

【python】seaborn可视化之FacetGrid()

g = sns.FacetGrid(tips,col='sex',hue='smoker')
g.map(plt.scatter,"total_bill","tip",alpha=0.7)
g.add_legend()  # 加注释

【python】seaborn可视化之FacetGrid()

g = sns.FacetGrid(tips,col='time',row='smoker',margin_titles=True)
g.map(sns.regplot,"size","total_bill",color="0.5",fit_reg=True,x_jitter=0.1)

【python】seaborn可视化之FacetGrid()

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

【python】seaborn可视化之FacetGrid()

from pandas import Categorical
ordered_days = tips.day.value_counts().index
print(ordered_days)
ordered_days = Categorical(['Thur',"Fri","Sat","Sun"])
# FacetGrid传数据需要是pandas格式
g = sns.FacetGrid(tips,row='day',row_order=ordered_days,size=1.7,aspect=4)
g.map(sns.boxplot,"total_bill")

【python】seaborn可视化之FacetGrid()

pal = dict(Lunch="seagreen",Dinner="red")# 两个变量自己指定颜色
g=sns.FacetGrid(tips,hue="time",palette=pal,size=5)
g.map(plt.scatter,"total_bill","tip",s=50, alpha=0.7, linewidth=0.5,edgecolor="white")
g.add_legend()

【python】seaborn可视化之FacetGrid()

g=sns.FacetGrid(tips,hue="time",palette=pal,size=5,hue_kws={"marker":["^","v"]})
g.map(plt.scatter,"total_bill","tip",s=50, alpha=0.7, linewidth=0.5,edgecolor="white")
g.add_legend()

【python】seaborn可视化之FacetGrid()

with sns.axes_style("white"):
    g = sns.FacetGrid(tips,row="sex",col="smoker",margin_titles=True,size=3)
g.map(plt.scatter,"total_bill","tip",color="#334488",edgecolor="white",lw=5)
g.set_axis_labels("Total bill (US Dollars)","Tip")
g.set(xticks=[10,30,50],yticks=[2,6,10])# 轴的取值范围
g.fig.subplots_adjust(wspace=0.02,hspace=0.02)# 子图和子图之间的间隔

【python】seaborn可视化之FacetGrid()

iris = sns.load_dataset("iris")
g = sns.PairGrid(iris)
g.map(plt.scatter)

【python】seaborn可视化之FacetGrid()

g = sns.PairGrid(iris)
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter)

【python】seaborn可视化之FacetGrid()

g = sns.PairGrid(iris,hue="species")
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter)
g.add_legend()

【python】seaborn可视化之FacetGrid()

# 指定想画出的特征
feature_=["sepal_length","sepal_width"]
g = sns.PairGrid(iris,vars=feature_, hue="species")
g.map(plt.scatter)

【python】seaborn可视化之FacetGrid()

g = sns.PairGrid(tips, hue='size',palette="GnBu_d")#渐变色
g.map(plt.scatter,s=50,edgecolor="white")
g.add_legend()

【python】seaborn可视化之FacetGrid()