如何使用Seaborn进行Python绘图和可视化?
摘要:博客地址:http:www.cnblogs.comyudanqu Seaborn是对matplotlib的extend,是一个数据可视化库,提供更高级的API封装,在应用中更加的方便灵活。下面我简单介绍一下他的用法,实际应用的时候,
博客地址:http://www.cnblogs.com/yudanqu/
Seaborn是对matplotlib的extend,是一个数据可视化库,提供更高级的API封装,在应用中更加的方便灵活。下面我简单介绍一下他的用法,实际应用的时候,可以直接从文档中查找这个库,这时候使用就很快捷了。
提要:1、直方图和密度图
2、柱状图和热力图
3、设置图形显示效果
4、调色功能
老样子,首先将使用它所需要的库导入进来,当然,其中包括numpy之类的是为了演示它的功能才导入的,大家要先理解一下每个库的作用。
1 import numpy as np
2 import pandas as pd
3 import matplotlib.pyplot as plt
4 from pandas import Series,DataFrame
5 import seaborn as sns
1、直方图和密度图
如果在交互式环境中,可以通过%matplotlab来解决每次通过plt.show()来显示图像(本人在ipython中,貌似jupyter中%matplotlib inline等等)
# matplotlib
1 s1 = Series(np.random.randn(1000)) # 生成1000个点的符合正态分布的随机数
2 plt.hist(s1) # 直方图,也可以通过plot(),修改里面kind参数实现
3 s1.plot(kind='kde') # 密度图
# seaborn
1 sns.distplot(s1,hist=True,kde=True,rug=True) # 前两个默认就是True,rug是在最下方显示出频率情况,默认为False
2 # bins=20 表示等分为20份的效果,同样有label等等参数
3 sns.kdeplot(s1,shade=True,color='r') # shade表示线下颜色为阴影,color表示颜色是红色
4 sns.rugplot(s1) # 在下方画出频率情况
给出两种方式通过最基本的方式画出来的效果,怎么样,是不是发现seaborn很强大。
2、柱状图和热力图
(1)下载实验数据:
1 df = sns.load_dataset('flights') # 在线下载一个数据用于实验,在sns.load_dataset()函数里有很多的数据,想了解更多的可以到GitHub中找到源码,你就会很清楚了
我们可以先看一下里面的数据,可以看到,这是一个航空的数据,里面有年、月和乘客数量,接下来我们就要在这份数据上进行分析。
(2)我们可以通过透视表来先对这份数据进行一下处理:
1 df = df.pivot(index='month',columns='year',values='passengers') # 生成一个透视表,得到一个以年、月为轴的二维数据表
大家可以自己试一下,这样生成的结果是以年为columns,以月为index,表内数据为对应的乘客数量。
