跟我一起学点数据分析 --第六天:数据可视化(seaborn部)
【摘要】
文章目录
前文回顾数据集seaborn绘图入门直方图 与 密度图频数图条形图散点图为点设置形状和大小 蜂巢图2D密度图箱线图条形图小提琴图成对关系多变量数据
前文回顾
跟我一起学点数据分析 --第五天:数据可视化(matplotlib部)
数据集
数据可视化部分能用到的数据集在上一篇都已经给啦。
什么x轴、y轴、标题,咱一律不整那...
前文回顾
跟我一起学点数据分析 --第五天:数据可视化(matplotlib部)
数据集
数据可视化部分能用到的数据集在上一篇都已经给啦。
什么x轴、y轴、标题,咱一律不整那些虚的啊,前一篇已经整够多了,复制粘贴的我都累。
seaborn绘图入门
这里先用tips.
直方图 与 密度图
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
ax = sns.displot(tips['total_bill'],kde = True)
# displot 函数默认会绘制直方图和密度图,如果不想看到密度图,把kde设为False,我这边默认是False
plt.show()
如果只想看到密度图呢?
本来想把上面的kde参数改成hist参数,但是说hist参数已经被弃用,就是这么无情,并不能在国内的网站上轻易找到答案,反正我烦了一页是没有,还是在国外的一本书上人家随口提了一句。
国内网站关于seaborn的资料太少了,英语咱又不好。。。还不会翻墙。。。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
ax = sns.kdeplot(tips['total_bill'])
plt.show()
频数图
上边第一张就差不多
有区分度么?
ax = sns.distplot(tips['total_bill'],rug = True)
条形图
ax = sns.countplot('day',data = tips)
接下来是双变量数据的世界
散点图
ax = sns.regplot(x = 'total_bill',y = 'tip',data = tips)
同样的,如果你不想看回归线,那怎么办?把fit_reg设置为False
来个更牛逼的,具体自己看:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
ax = sns.jointplot(x = 'total_bill',y = 'tip',data = tips)
ax.set_axis_labels(xlabel='Total Bill',ylabel='Tip')
ax.fig.suptitle('Joint Plot',fontsize = 10,y = 1.03)
plt.show()
为点设置形状和大小
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
sns.regplot(x='total_bill', y='tip', data=tips,marker='o', color='red', scatter_kws={'s':20})
plt.show()
更详尽的用法参考上一篇
蜂巢图
散点图适用于比较两个变量,但有时图中的点太多反而会失去意义。
哎,话也不多说,直接看吧:
就改这么一行:hexbin = sns.jointplot(x = 'total_bill',y = 'tip',data = tips,kind = 'hex')
然后就OK啦
2D密度图
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
ax = sns.kdeplot(data = tips['total_bill'],data2 = tips['tip'],shade = True)
plt.show()
ax = sns.jointplot(data = tips,x = 'total_bill',y = 'tip',kind = 'kde')
箱线图
箱线图用来显示多种统计数据的信息,就是describe函数看到的那些·
ax = sns.boxplot(data = tips,y = 'total_bill',x = 'time')
条形图
条形图我就不说了吧,barplot,自己用。
小提琴图
我说它是箱线图和密度图的合体你信吗?
ax = sns.violinplot(data = tips,y = 'total_bill',x = 'time')
成对关系
当大部分数据都是阿拉伯数字的时候,可以使用pairplot 把所有的成对关系都描绘出来。
但是直接用的话,会有不少的冗余。
于是·我们采用PairGrid来手动指定图的上半部分和下半部分(一会儿可以去查一下这个函数)
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = pd.read_csv('tips.csv')
pait_grid = sns.PairGrid(tips)
pait_grid = pait_grid.map_upper(sns.regplot)
pait_grid = pait_grid.map_lower(sns.kdeplot)
pait_grid = pait_grid.map_diag(sns.distplot,rug = True) #这个true有什么用呢?只是频数而已
plt.show()
多变量数据
如果数据量还不小,你想根据某个变量来进行一波分流操作,怎么操作呢?
比方说我现在要以性别来分流。
ax = sns.violinplot(data = tips,y = 'total_bill',x = 'time',hue='sex')
这篇就先到这里啦。
最近我发现啊,要验证一篇博客好不好,要看它的实战性能。
所以后面我还会回来的。
文章来源: lion-wu.blog.csdn.net,作者:看,未来,版权归原作者所有,如需转载,请联系作者。
原文链接:lion-wu.blog.csdn.net/article/details/112143468
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)