前几天赶了几份课程实验报告,这边博客就耽误了,昨天又闹了一天胃病,所以博客已经好久没更了,真是愧疚!
以前的文章有讲过Python中Pandas做数据分组,具体在这篇文章:Pandas数据分组
通过Pandas进行数据分组后再通过matplotlib进行可视化展示,今天我们来学一种更简便的数据分组可视化工具—Seaborn
Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。同时它能高度兼容numpy与pandas数据结构以及scipy与statsmodels等统计模式。
如果大家使用Anaconda的话,这个包就是已经安装了,如果没安装的话可以参考以下方法进行安装:
seaborn包依赖于scipy包,所以要先装scipy
python3 -m pip install --upgrade pip
# 安装包并安装这个包所需的依赖包(sc)
pip3 install seaborn -U
# 或者
pip3 install scipy
pip3 install seaborn
安装之后我们来学一下它的整体风格设置,对图表整体颜色、比例等进行风格设置,包括颜色色板等
引入所需模块
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
首先我们创建一个正弦函数作为例子来引入Seaborn
def sinplot(flip=1):
x=np.linspace(0,14,100)#0-14,拆分100个数
for i in range(1,7):
plt.plot(x,np.sin(x+i*5)*(7-i)*flip)
sinplot()#Seaborn绘图
输出结果:
我们对图表设置默认风格,风格一旦设置后不可取消
sns.set()
sinplot()
plt.grid(linestyle='--')
第二种设置方法是通过set_style()来设置
Seaborn图表风格包括:‘white’,‘dark’,‘whitegrid’,‘darkgrid’,‘ticks’,每种风格具体是什么样的我们就不一一列举了大家可以自己去试一下
sns.set_style('ticks')#设置风格为‘ticks’
data=np.random.normal(size=(20,6))+np.arange(6)/2#生成数据
sns.boxplot(data=data)#绘制箱型图
plt.title('style-whitegrid')#设置标题
整体风格之后,我们也可以对Seaborn图表的坐标轴进行设置,主要是通过despine()这个函数来设置的,包括#seaborn.despine(fig=None,ax=None,top=True,right=True,left=False
#bottom=False,offset=None,trim=False)
首先设置风格并创建图表
sns.set_style('ticks')
#设置风格
fig=plt.figure(figsize=(6,9))
plt.subplots_adjust(hspace=0.3)
#创建图表
删除上边和左边坐标轴(上边和左边默认为False)
ax1=fig.add_subplot(3,1,1)
sinplot()
sns.despine()
绘制小提琴图
ax2=fig.add_subplot(3,1,2)
sns.violinplot(data=data)#小提琴图
sns.despine(offset=10,trim=False)
#offset:与坐标轴之间的偏移
#trim:为True时,将坐标轴限制在数据最大值最小值
绘制箱型图
ax3=fig.add_subplot(3,1,3)
sns.boxplot(data=data,palette='deep')
sns.despine(left=True,right=False)#左边的不显示,右边的显示
#top,right,left,bottom,布尔型,为True时不显示
当然了,我们也可以设置局部图表风格,主要和with配合使用
with sns.axes_style('darkgrid'):
plt.subplot(211)
sinplot()
#设置局部图表风格,用with做代码块区分
sns.set_style('whitegrid')
plt.subplot(212)
sinplot()
#外部表格风格
我们还可以设置图表的比例尺
#set_context()
#设置显示比例尺度
#选择包括:‘paper’,‘notebook’,‘talk','poster'
sns.set_context('talk')
sinplot()
#默认为notebook
OK,这就是Seaborn的一些基本设置,可能现在还没有感受到Seaborn的强大便捷吧,后面几篇文章就会感受到啦~
关注欢喜,一起进步呀~
微信公众号,这个公众号里面不止有Python的内容哦,还有C++,微信小程序,以及一些课程实验啊课设啊源码哦~