文章目录
- FacetGrid与调色盘
- FacetGrid结构图
- Axes绘图
- FacetGrid使用
- Axes 与 FacetGrid绘图
- 设置图形的尺寸
- 添加图例
- 设置标题
- 设置坐标轴
- 设置背景颜色
- Seaborn样式风格设置
- 风格设置函数
FacetGrid与调色盘
FacetGrid结构图
之前我们在绘图的时候,学了
Axes绘图
实际上
1 2 3 4 5 6 7 | # subplts为绘制子图,创建一个1*2的矩阵图,figsize为画布大小 # 轴对象以将绘图绘制到该轴上,否则使用当前轴 # fig,ax = plt.subplots(1,2,figsize=(20,5)) sns.scatterplot(x='total_bill',y='tip',data=tips,ax=ax[0]) sns.barplot(x='day',y='total_bill',data=tips,ax=ax[1]) plt.show() |
注意
FacetGrid 可以通过col 和 row 等参数来一次性构建多个图形relplot/catplot/lmplot 等函数都是用的FacetGrid 方法技术- 凡是函数名中已经明确了图的类型,都是直接使用
Axes 进行绘图 FacetGrid 绘图的x和y参数,必须为DataFrame的列的名字,而直接使用Axes 绘图,参数更加灵活- 直接使用
Axes 绘图,可以非常方便的跟Matplotlib 结合使用
FacetGrid使用
seaborn.FacetGrid(data,row=None,col=None,hue=None)
- 初始化
matplotlib 画布和FacetGrid 对象 - data : 为DataFrame数据
- row,col,hue : 定义数据子集的变量,这些变量将在网格的不同方面绘制
注意
- 先创建一个
FacetGrid 对象 - 再调用这个对象的
map 方法 map 的第一个参数是函数- 后续
map 通过调用该函数绘制图形 - 后面的参数是传给函数的参数
Axes 与 FacetGrid绘图
参数 | 描述 | FacetGrid函数 |
---|---|---|
绘制折线图 | ||
绘制六边形图 | ||
绘制散点图 | ||
绘制直方图 | ||
绘制分类散点图 | ||
散开来的分散点图 | ||
绘制小提琴图 | ||
绘制点线图 | ||
绘制条形图 | ||
绘制数量柱状图 |
设置图形的尺寸
使用
1 2 3 4 5 | # 传入的参数data # height 为高度 # aspect 为宽度 g = sns.FacetGrid(tips,col = 'smoker',height=5,aspect=1) g.map(sns.barplot,'day', 'total_bill') |
添加图例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # 设置显示中文 sns.set(rc={"font.sans-serif":"SimHei"}) # 初始化FacetGrid fg = sns.FacetGrid(tips,col='day',hue='time') # map进行绘图 fg.map(sns.regplot,'total_bill','tip') # 添加图例 fg.add_legend(title='标题',label_order=['Dinner','Lunch']) new_labels = ["晚餐","午餐"] for text,lable in zip(fg._legend.texts,new_labels): text.set_text(lable) |
设置标题
设置标题可以通过
template :给图设置标题,其中有{row_var} 绘制每行图像的名称,{row_name} 绘制每行图像的值,{col_var} 绘制每列图像的值,{col_name} 绘制每列图像的值。col_template : 每图像设置列的标题。其中有{col_var} 以及{col_name} 可以使用。row_template : 给图像设置行的标题。其中有{row_var} 以及{row_name} 可以使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 设置中文 sns.set(rc={'font.sans-serif':'SimHei'}) # 初始化FacetGrid g = sns.FacetGrid(tips,col='day',row='time') # 设置标题 # 这里的col_name 为指定的col的值 g.map(sns.scatterplot,'total_bill','tip') # template g.set_titles(template = '时间{row_name}-星期:{col_name}') |
设置坐标轴
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # 设置中文 sns.set(rc={'font.sans-serif':'SimHei'}) # 初始化FacetGrid g = sns.FacetGrid(tips,col='day',row='time') # 设置标题 # 这里的col_name 为指定的col的值 g.map(sns.scatterplot,'total_bill','tip') # template g.set_titles(template = '时间{row_name}-星期:{col_name}') # 设置坐标轴 g.set_axis_labels("消费金额","消费") |
设置背景颜色
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # 设置中文 sns.set(rc={'font.sans-serif':'SimHei'}) # 初始化FacetGrid g = sns.FacetGrid(tips,col='day',row='time') # 设置标题 # 这里的col_name 为指定的col的值 g.map(sns.scatterplot,'total_bill','tip') # template g.set_titles(template = '时间{row_name}-星期:{col_name}') # 设置坐标轴 g.set_axis_labels("消费金额","消费") # 设置背景颜色 g.set(facecolor="g") |
Seaborn样式风格设置
用
风格设置函数
在
sns.axes_style
- 如果没有传任何参数 ,返回的是字段属性
- 临时的样式
1 2 3 4 5 6 7 | # 设置大小 plt.figure(figsize=(15,8)) # 临时设置 with sns.axes_style('darkgrid',rc={'axes.facecolor':'black'}): sns.lineplot(x='timepoint',y='signal',data=fmri) plt.show() |
sns.set
set方法也是用来设置样式的,他的功能更加强大。除了
1 2 | sns.set(rc={'font.sans-serif':'SimHei','lines.linewidth':5}) sns.lineplot(x='timepoint',y='signal',data=fmri) |