Seaborn各种绘图

Seaborn的图表如下:

分类图:柱状图barplot、箱图boxplot、小提琴图violinplot、散布图(stripplot、swarmplot)、分面网格catplot

关联图:散布图scatterplot、线图lineplot、分面网格relplot

分布图:单变量分布图distplot、核密度图kdeplot

矩阵图:热力图heatmap、聚类图clustermap

回归图:线性回归图regplot、分面网格线性回归图lmplot

set_style()

在matplotlib中,我们通过rcParams[‘font.family’]=[‘SimHei’]来解决中文不显示问题

在Seaborn中是没有效果,只能通过set_style()的第二个参数解决。

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')

#设置背景
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})

#图片的尺寸
plt.rcParams['figure.figsize'] = (8,4)

plt.rcParams['figure.dpi'] = 100

plt.rcParams['axes.unicode_minus'] = False

X = np.arange(-5,5,.1)

data = dict(A=np.exp(-X**2),B=np.sin(X),C=X)

df = pd.DataFrame.from_dict(data)
sns.lineplot(data=df)

plt.title('三条线')

在这里插入图片描述

柱状图

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})
plt.rcParams['figure.figsize'] = (8,4)
plt.rcParams['figure.dpi'] = 100
plt.rcParams['axes.unicode_minus'] = False

#读取数据
tips = sns.load_dataset('tips')
#hue 类别(性别)palette 设置颜色 
sns.barplot(data=tips,x='day',y='tip',hue='sex',palette='hls')

plt.title('柱状图')
#保存图片方式
#plt.savefig('地址')

在这里插入图片描述

箱图

在这里插入图片描述

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})
plt.rcParams['figure.figsize'] = (8,4)
plt.rcParams['figure.dpi'] = 100
plt.rcParams['axes.unicode_minus'] = False

iris = sns.load_dataset('iris')

sns.boxplot(data=iris)

在这里插入图片描述

小提琴图

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})
plt.rcParams['figure.figsize'] = (8,4)
plt.rcParams['figure.dpi'] = 100
plt.rcParams['axes.unicode_minus'] = False

iris = sns.load_dataset('iris')

sns.violinplot(data=iris,palette='hls')

在这里插入图片描述

分类散布图

分类散布图有两种:Strip(带状图)和Swarm(锋群图)

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})
plt.rcParams['figure.figsize'] = (8,4)
plt.rcParams['figure.dpi'] = 100
plt.rcParams['axes.unicode_minus'] = False

#读取数据
tips = sns.load_dataset('tips')

sns.stripplot(x='day', y='tip', hue='smoker', data=tips,palette='hls')
sns.boxplot(x='day', y='tip', data=tips)

在这里插入图片描述

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})
plt.rcParams['figure.figsize'] = (8,4)
plt.rcParams['figure.dpi'] = 100
plt.rcParams['axes.unicode_minus'] = False

#读取数据
tips = sns.load_dataset('tips')

sns.swarmplot(x='day', y='tip',hue='smoker',data=tips,palette='hls')
sns.violinplot(x='day', y='tip', data=tips)

在这里插入图片描述

分类分面网格图

分面网格(FacetGrid)可以绘制多个子图,这个网格是一个大图集,又X和Y两个坐标,实际上就是一个大图包含很多的小图。

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})
plt.rcParams['figure.figsize'] = (8,4)
plt.rcParams['figure.dpi'] = 100
plt.rcParams['axes.unicode_minus'] = False

#读取数据
tips = sns.load_dataset('tips')

sns.catplot(x='day',y='tip',data=tips,kind='strip',hue='sex',col='time',row='smoker')

在这里插入图片描述
当一列数据画箱线图的时候用cut分组进行

gro = [1,10,20,30,40,51]
tips['gro'] = pd.cut(tips.total_bill,gro)
sns.boxplot(x='gro',y='tip',data=tips)
plt.title('gro')

在这里插入图片描述

关联散布图

绘制函数: sns.scatterplot(x=None,y=None,hue=None,style=None,size=None,data=None)

x、y是有关的两个变量数据集(一位的)
hue,size、style显示不同的数据集条件类别
(都是类别)

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset('tips')

sns.scatterplot(data=tips,x='total_bill',y='tip',hue='sex',style='time',size='smoker')

在这里插入图片描述

直方图 的(dist图)

a的参数是一个单变量数据
bins柱子之间的间隔(柱子的数量)
hist是否绘制直方图
kde是否绘制密度图

import seaborn as sns
import numpy as np
X = np.log(np.exp(np.random.normal(loc=0,scale=1,size=1000)))

sns.distplot(X,color='r',bins=50,)

在这里插入图片描述

密度图

双轴KDE图

import seaborn as sns
import numpy as np
X = np.random.normal(loc=0,scale=1,size=1000).reshape(500,2)

sns.kdeplot(X[:,0],X[:,1],color='b',shade=True)

在这里插入图片描述

热力图

热力图(heatmap)是以举证的形式表现的,数据值越小颜色越深,数据越小反之,在机器学习中的分类学习,对比准确率的时候经常会使用

vmin和vmax,图例中最大值和最下值的显示
cmap参数是设置颜色的
annot参数,注解,在每一个单元格中显示数据

import seaborn as sns
import numpy as np

X = np.random.normal(loc=0,scale=1,size=36).reshape(6,6)

#混淆矩阵  y_true_num,y_pred_num
sns.heatmap(X,annot=True)

在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值