python中seaborn包常用图形使用详解

yipeiwu_com6年前Python基础

seaborn包是对matplotlib的增强版,需要安装matplotlib后才能使用。

所有图形都用plt.show()来显示出来,也可以使用下面的创建画布

fig,ax=plt.subplots()  #一个画布

fig,(ax1,ax2) = plt.subplots( ncols=2)  #两个画布

1)单个特征统计图countplot

sn.countplot(train.mnth)#离散型特征可使用,描述样本点出现的次数。

2)单个特征统计图distplot

sn.distplot(train.cnt.values,bins=50,kde=True)#连续型特征可使用,bins=50分成50个柱形,kde=True显示核密度线。如果图形的尾巴很特殊,则可能是奇异点(离群点,噪声点),考虑去掉。

3)双特征小提琴图

sn.violinplot(data=train[['yr', 'cnt']],x="yr",y="cnt") #显示数据分布及其概率密度,中间的黑色粗条表示四分位数范围,从其延伸的幼细黑线代表 95% 置信区间,而白点则为中位数。

4)双特征箱型图

sn.boxplot(data=train,x="yr",y="cnt")#又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。它显示情况从上到下的顺序为:异常值(可能没有)、最大值、上四分位数、中位数、下四分位数、最小值、异常值(有时没有,如果有,要特别注意)。

5)双特征棒图

fig,(ax1,ax2) = plt.subplots(ncols=2) #一个画布,两个轴

sn.barplot(data=train,x='holiday',y='cnt',hue='weathersit',ax=ax1) #hue='weathersit',通过weathersit来区分

sn.barplot(data=train,x='workingday',y='cnt',hue='season',ax=ax2) #hue='season',通过season来区分

6)双特征折线图

fig,ax = plt.subplots()

sn.pointplot(data=train[['dayofyear','cnt', 'yr']],x='dayofyear',y='cnt',hue='yr',ax=ax)

# hue='yr'指的是区分开年份。hue指颜色

ax.set(title="dayly distribution of counts")

plt.show()

7)关系热力图

corrMatt = train[["temp","atemp","hum","windspeed","cnt"]].corr()

mask = np.array(corrMatt)

mask[np.tril_indices_from(mask)] = False

sn.heatmap(corrMatt, mask=mask,

      vmax=1, square=True,annot=True)

plt.show()

8)双特征散点图

sn.scatterplot(x=train.GrLivArea,y=train.SalePrice)

plt.title("Looking for outliers") #图形标题

plt.show()

以上这篇python中seaborn包常用图形使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python实现网页截图(PyQT5)过程解析

方案说明 功能要求:实现网页加载后将页面截取成长图片 涉及模块:PyQT5 PIL 逻辑说明: 1:完成窗口设置,利用PyQT5 QWebEngineView加载网页地址,待网页加...

python基础教程之类class定义使用方法

面对对象(oop)中的对象,是一个非常重要的知识点,我们可以把它简单看做是数据以及由存取、操作这些数据的方法所组成的一个集合。我们在学习函数(function)之后,知道了如果重用代码,...

Python简单实现阿拉伯数字和罗马数字的互相转换功能示例

Python简单实现阿拉伯数字和罗马数字的互相转换功能示例

本文实例讲述了Python实现阿拉伯数字和罗马数字的互相转换功能。分享给大家供大家参考,具体如下: 前面一篇介绍了《Java实现的求解经典罗马数字和阿拉伯数字相互转换问题》,这里来看看P...

Python控制多进程与多线程并发数总结

Python控制多进程与多线程并发数总结

一、前言 本来写了脚本用于暴力破解密码,可是1秒钟尝试一个密码2220000个密码我的天,想用多线程可是只会一个for全开,难道开2220000个线程吗?只好学习控制线程数了,官方文档...

python时间序列按频率生成日期的方法

有时候我们的数据是按某个频率收集的,比如每日、每月、每15分钟,那么我们怎么产生对应频率的索引呢?pandas中的date_range可用于生成指定长度的DatetimeIndex。 我...