Seaborn的api非常友好而且完美兼容pandas数据
sns.set()
sinplot()#使用seaborn风格
五种主题风格
darkgrid,whitegrid,dark,white,ticks
sns.setstyle['风格']
sns.boxplot(data=.)
sns.despine(offset=)#https://seaborn.pydata.org/generated/seaborn.despine.html?highlight=despine#seaborn.despine
#with sns.set_style(""):
风格1
..风格2
sns.set_context()#指定格子大小
调色板
颜色很重要
color_palette()能传入任何Matplotlib所支持的颜色
color_palette()不写参数则默认颜色
set_palette()设置所有图的颜色
current_palette=sns.color_palette()
sns.palplot(current_palette)#默认颜色版
sns.palplot(sns.color_palette("hls",8))#把圆盘分成n份
sns.palplot(sns.color_palette("Paired",8))#把深浅色作为一对分成n份
sns.boxplot(data,palette=sns.color_palette("hls",n))
sns.palplot(sns.hls_palette(8,l,s))#l亮度--s饱和度sns.boxplot(data,palette=sns.hls_palette(8,l,s))
#xkcd颜色 产生了954个可以随时通过xkcd_rgb字典中调用的命名颜色
sns.xkcd_rgb["medium green"]
colors=["green","red"]
sns.palplot(sns.xkcd_palette(colors))
#单颜色由浅到深
sns.palplot(sns.color_palette("Blues",9))
#深到浅
sns.palplot(sns.color_palette("Blues_r",9))
#cubehelix
sns.palplot(sns.cubehelix_palette(8,start=.5,rot=-.75))# https://seaborn.pydata.org/generated/seaborn.cubehelix_palette.html?highlight=cubehelix#seaborn.cubehelix_palette
sns.palplot(sns.light_palette(color=))
sns.palplot(sns.dark_palette(color=))#
单变量分析
import matplotlib.pyplot as plt
import matplotlib
%matplotlib inline
import seaborn as sns
from scipy import stats,integrate
import numpy as np
x=np.random.normal(size=100)
sns.distplot(x,kde=False,bins=50,fit=stats.gamma)#查看统计指标下分布状况
均值协方差图
mean,cov=[0,1],[(1,.5),(.5,1)]
data=np.random.multivariate_normal(mean,cov,200)
import pandas as pd
df=pd.DataFrame(data,columns=['A','B'])
df.head()
A | B | |
---|---|---|
0 | 0.602680 | 1.608229 |
1 | -1.114711 | 0.097490 |
2 | 0.247072 | -0.914582 |
3 | 0.757910 | 1.290371 |
4 | -0.554619 | 0.703283 |
ax[0]=sns.jointplot(x='A',y='B',data=df,kind="kde");
####ax[0].annotate(stats.pearsonr)
iris=sns.load_dataset("iris")
###r, p = stats.pearsonr(x, y),label放入
ax[1]=sns.pairplot(iris)#对角线是单变量的分布图,不是对角线的情况是双变量散点图
import matplotlib.pyplot as plt
import matplotlib
%matplotlib inline
import seaborn as sns
from scipy import stats,integrate
import numpy as np
import pandas as pd
tips=sns.load_dataset("tips")
tips.head()
sns.regplot(x="total_bill",y="tip",data=tips)#implot也可以,x_jitter=0.05小抖动离散值变常用
import matplotlib.pyplot as plt
import matplotlib
%matplotlib inline
import seaborn as sns
from scipy import stats,integrate
import numpy as np
import pandas as pd
iris=sns.load_dataset("iris")
titanic=sns.load_dataset("titanic")
tips=sns.load_dataset("tips")
ax1=plt.subplot2grid((2,2),loc=(0,0))
ax1=sns.stripplot(x="day",y="total_bill",data=tips)
ax2=plt.subplot2grid((2,2),loc=(0,1))
ax2=sns.swarmplot(x="day",y="total_bill",hue="sex",data=tips)
ax3=plt.subplot2grid((2,2),loc=(1,0))
ax3=sns.boxplot(x="day",y="total_bill",hue="time",data=tips,palette=sns.color_palette("hls",4))
ax4=plt.subplot2grid((2,2),loc=(1,1))
ax4=sns.violinplot(x="day",y="total_bill",hue="time",data=tips,palette=sns.color_palette("hls",4),split=True)
fig=plt.figure()
ax5=fig.add_subplot(211)
ax5=sns.barplot(x="sex",y="survived",hue="class",data=titanic)
ax6=fig.add_subplot(212)
ax6=sns.pointplot(x="class",y="survived",hue="sex",data=titanic,palette=\
{"male":"g","female":"m"},markers=["^","o"],linestyles=\
["-","--"])
ax7=sns.factorplot(x="day",y="total_bill",hue="smoker",col="time",data=tips,kind="swarm",sharey=False)
Parameters
- x,y,hue数据集艾全变量名. date 数据集数据集名
- row,col更多分类变量进行平铺显示变量名
- col_wrap每行的最高平铺数整数公
- estimator在每个分类中进行矢量到标量的映射矢量
- ci置信区间浮点数或None
- n_boot计算置信区间时使用的引导迭代次数整数
- units 采样单元的标识符,用于执行多级引导和重复测量设计数据变量或向量数据
- row_order, col_order对应排序列表字符串列表
- kind:可选: point 默认, bar柱形图, count频次, box箱体, violin提琴, strip散点,swarm分散点
- size每个面的高度(英寸)标量
- aspect纵横比标量orient方向”v”n”
- color颜色matplotlib颜色palette 调色板seaborn颜色色板或字典
- legend hue的信息面板True/False
- legend_out是否扩展图形,并将信息框绘制在中心右边True/False
- share{x.y}共享轴线True/False
展示数据子集的工具FacetGrid
import matplotlib.pyplot as plt
import matplotlib
%matplotlib inline
import seaborn as sns
from scipy import stats,integrate
import numpy as np
import pandas as pd
iris=sns.load_dataset("iris")
titanic=sns.load_dataset("titanic")
tips=sns.load_dataset("tips")
g=sns.FacetGrid(tips,col="time")#row也可以指定一个维度
g.map(plt.scatter,"sex","tip")
g.add_legend()
#g.set()
#g.fig.subplots_adjust(wspace,hspace)#子图间隔设置
k=sns.PairGrid(iris,hue="species",)#vars指定n个变量只画n个变量的图n*n个图
k.map_diag(plt.hist)#对角线上
k.map_offdiag(plt.scatter)#非对角线上
heatmap!!!
import matplotlib.pyplot as plt
import matplotlib
%matplotlib inline
import seaborn as sns
from scipy import stats,integrate
import numpy as np
import pandas as pd
uniform_data=np.random.rand(3,3)
print(uniform_data)
heatmap=sns.heatmap(uniform_data)#vmin,vmax,cmap,center=设置中心
dataset=sns.load_dataset("flights")
data=dataset.pivot("month","year","passengers")
ax=sns.heatmap(data,annot=True,fmt="d",linewidths=.3)
Comments NOTHING