</div>
<!--一个博主专栏付费入口-->
<!--一个博主专栏付费入口结束-->
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-833878f763.css">
<div id="content_views" class="markdown_views prism-atom-one-light">
<!-- flowchart 箭头图标 勿删 -->
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
</svg>
<h3><a name="t0"></a><a name="t0"></a><a id="_0"></a>一、准备工作</h3>
1.1
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import pandas as pd
import seaborn as sns
plt.rcParams[‘font.sans-serif’]=[‘SimHei’] # 用来显示正常的中文标签
plt.rcParams[‘axes.unicode_minus’] = False #用来正常显示负号
#sns.set_style=(‘darkgrid’,{‘font.sans-serif’:[‘SimHei’,‘Arial’]})
import warnings #屏蔽部分警告信息
warnings.filterwarnings(‘ignore’)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
1.2导入内置数据集
seaborn.load_dataset(name,cache=True,data_home=None,**kws)
- name 参数是数据集名字,https://github.com/mwaskom/seaborn-data 定义数据集名
- cache 参数是否提供缓存
- data_home 参数是指定缓存路径,默认当前用户home下的seaborn-data目录中
- sns.get_dataset_names()获得数据集名字
1.3调色板
#自定义调色板
color = ['red','orange','yellow','green','pink','blue','black']
print(color)
sns.palplot(color)
#颜色渐变的调色板
sns.palplot(sns.color_palette("Reds_r",10))
- 1
- 2
- 3
- 4
- 5
- 6
二、分类图
2.1柱状图
seaborn.barplot(
x,y,hue:绘图中所使用的分类/连续变量/颜色分组变量名
data :数据框名称
order, hue_order : hue变量各类别取值的绘图顺序
orient :“v" |“h”, 条带绘制方向
saturation = 0.75 : float, 直条颜色的饱和度
x = ["金融","农业","制造业","新能源"]
y = [164,56,126,58]
sns.barplot(x,y,
order = ["金融","制造业","新能源","农业"],
orient = 'v',
saturation = 0.25)
- 1
- 2
- 3
- 4
- 5
- 6
tips = sns.load_dataset("tips")#导入内置数据集tips
tips.head()
sns.barplot(x = 'day',y = 'tip',data = tips,hue = 'sex',palette = 'Blues')
- 1
- 2
- 3
黑色线是误差条,每一个柱最大值是一组数据的平均值
2.2条形图
交换x,y轴
sns.barplot(y = 'day',x = 'tip',data = tips,palette = "Purples")
- 1
2.3箱线图
seaborn.boxplot(
x,y, hue : names of variables in data or vector data, optional
data : DataFrame, array, or list of arrays,optional
orient :“v”| "h”, optional
color : matplotlib color, optional
palette : palette name, list, or dict, optional
saturation = 0.75 : float, 箱体颜色的饱和度
width = 0.8 : float, 箱体宽度所占比例
fliersize = 5 : float, 离群值散点大小.
linewidth = None : float, 框线宽度
whis = 1.5 : float,离群值确定标准,距离IQR 上下界的倍数)
tips = sns.load_dataset("tips")
sns.boxplot(x = "day",y = "tip",hue = "sex",data = tips)
- 1
- 2
2.4小提琴图
sns.violinplot(x = "day",y = "tip",hue = "sex",data = tips,split = True)
- 1
2.5散点图
2.51 strip带状散点图
sns.boxplot(x = 'day',y = 'tip',data = tips)
sns.stripplot(x = 'day',y = 'tip',data = tips,color = 'c')
- 1
- 2
5.25 swarm蜂群状散点图
sns.swarmplot(x = "day",y = "tip",data = tips,hue = 'sex')
- 1
2.6分面网格分类图
在分面网格中绘制分类图使用catplot函数,catplot 函数称为“图级函数”,而barplot、boxplot、
violinplot等函数是分面网格x和y轴上进行绘制,这些函数称为“轴级函数”。
catplot函数数除了具有“轴级函数”的参数外,还有如下主要参数:
row:在x轴上绘制的数据。
col:在y轴上绘制的数据。
col_wrap: 在x轴上绘制子图的最大个数。
kind:绘制子图类型,主要有"bar"、strip"、”swarm"、"violin”、“box"或"boxen”,其中"strip"是默认值。
sns.catplot(x = "day",y = "tip",data = tips,hue = "sex",col = "size",kind = "bar",col_wrap = 3)#限制每行放三个图
- 1
三、关联图
3.1线图
主要参数和3.3散点图一样
data = {
'apples':[3,2,0,1],
'orange':[0,1,2,3],
'bananas':[1,2,1,0]
}
df = pd.DataFrame(data,index = ['June','Robert','Lily','David'])
sns.lineplot(data =df)#一个列一条线
- 1
- 2
- 3
- 4
- 5
- 6
- 7
3.2分面网格关联图
在分面网格中绘制关联图使用relplot函数
mpg_df = sns.load_dataset("mpg")
mpg_df.head()
g = sns.relplot(x = "displacement", y = "mpg",col = "cylinders",row = "origin",data = mpg_df)
- 1
- 2
- 3
3.3散点图
Seaborn中关联散点图函数是seaborn.scatterplot,它的主要参数:
seaborn.scatterplot (x=None, y=None, hue=None, style=None,size=None,data=None )
- x和y是有关联的两个变量数据集。
- hue、size、style能够显示不同的数据集。
- 如果data设定,则x、y、hue、size、style取值是data中列名。
plt.figure(dpi = 150)
sns.scatterplot(x= 'total_bill',y = "tip",hue = "sex",data = tips,style = 'time')
- 1
- 2
四、分布图
4.1单变量分布图
Seaborn中distplot函数可以绘制Dist图,事实上统计学并不存在Dist图,
Seaborn中Dist图是单变量的直方图和密度图结合体。
distplot函数的主要参数:
seaborn.distplot (a, bins = None, hist = True, kde = True)
- a参数是单变量数据,他可以是Series、 一维数组或列表。
- bins参数是直方图中柱体的个数。
- hist参数是否绘制直方图。
- kde 参数是否绘制密度图。
sns.distplot(tips["total_bill"],hist = True,kde = True)
- 1
4.2密度图
kdeplot函数的主要参数:
seaborn . kdeplot(data, data2=None,shade=False)
- data参数是第1个变量数据,他可以是Series、 一维数组或列表。
- data2参数是第2个变量数据,类型同data参数。
- shade参数是否绘制阴影效果。
n = 1024
x = np.random.normal(0,1,n)
y = np.random.normal(0,1,n)
g = sns.kdeplot(x,y)
- 1
- 2
- 3
- 4
五、矩阵图
5.1热力图
热力图(heatmap)是以矩阵形式表示数据的一种方式,数据值在图中表示为颜色。
Seaborn中绘制热力图函数是seaborn.heatmap,它的主要参数:
seaborn. heatmap(data, vmin=None, vmax=None, cmap=None, annot =None )
- data参数,二维数据集。
- vmin 和vmax参数,图例中最大值和最小值的显示值。
- cmap参数,设置颜色面板。
- annot参数,设置热力图注解,如果True则在单元格中显示数据值。
df = pd.DataFrame(np.random.rand(10,10),columns = list("abcdefghij"))
sns.heatmap(df,cmap = "Greens",vmin = 0,vmax = 0.5,annot = True)
- 1
- 2
六、回归图
6.1线性回归图
线性回归图通过大量数据找到模型拟合的线性回归线,使用Seaborn 的regplot函数。
回归图:线性回归图regplot和分面网格(FacetGrid)线性回归图lmplot。
df = sns.load_dataset("tips")
sns.regplot(x = 'total_bill',y = 'tip',data = df)
- 1
- 2
七、分面网格图
可以通过seaborn. FacetGrid 类绘图分面网格,然后再通过seaborn. FacetGrid. map方法将一个绘图函数作用于一一个网格,并绘制子图。
seaborn. FacetGrid构造函数:
seaborn. FacetGrid( data, row=None, col=None, hue=None, col_wrap=None )
FacetGrid.map方法:
FacetGrid. map(func,*args, **kwargs)
g = sns.FacetGrid(mpg_df,col = "origin")
g.map(sns.distplot,"mpg")
- 1
- 2
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" rel="stylesheet">
</div>