Seaborn绘图01

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/meiqixiao/article/details/102535237

Seaborn绘图表分类

  • 分类图:柱状图barplot、箱线图boxplot、小提琴图violinplot、散点图(stripplot、swarmplot)、以及分面网格(FacetGrid)分类图catplot。
  • 关联图:散点图scatterplot、线图lineplot、以及分面网格(FacetGrid)关联图relplot。
  • 分布图:单变量分布图distplot、密度图kdeplot。
  • 矩阵图:热力图heatmap、聚类图clustermap。
  • 回归图:线性回归图regplot和分面网格(FacetGrid)线性回归图lmplot。
  • 分面网格图:FacetGrid。

准备工作

#准备工作
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
import numpy as np
import pandas as pd
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
#seaborn中显示中文
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})

#去除部分警告
import warnings
warnings.filterwarnings('ignore')

Seaborn内置数据集

https://github,com/mwaskom/seaborn-data

seaborn.load_dataset(name,cache=True,data_home=None,**kws)
  • name:参数是数据集的名字,https://github,com/mwaskom/seaborn-data 定义数据集名。
  • cache:参数是否提供缓存。
  • data_home:参数是指定缓存路径,默认当前用户home下的seaborn-data目录中。
  • sns.get_dataset_names():获得数据集名字。

下载数据

  1. 下载单个数据集
#下载数据
titanic=sns.load_dataset('titanic',cache=True)
获取全部数据集名称
#用列表形式返回github上的数据名字
names = sns.get_dataset_names()

print(names)
-------------------------------------------------------------------------
['anscombe', 'attention', 'brain_networks', 'car_crashes', 'diamonds', 'dots', 'exercise', 'flights', 'fmri', 'gammas', 'iris', 'mpg', 'planets', 'tips', 'titanic']
  1. 下载全部数据集
#下载全部数据集
for i in names:
    sns.load_dataset(i)

虽然Matplotlib也可以绘图,但是相较而言seaborn更为美观

#先运行上面的,后运行下面的,分开运行
sns.set()
plt.bar([1,2,3,4,5],[3,6,9,2,5])

结果:
在这里插入图片描述
现在更加细致的了解一下sns.set吧

help(sns.set)

结果:
在这里插入图片描述

背景

可以知道背景有几种模式:‘darkgrid’,‘whitegrid’,‘dark’,‘white’,‘ticks’。默认为darkgrid模式。就是上面那个图的背景样式。

whitegrid:白色网格
sns.set_style('whitegrid')
plt.bar([1,2,3,4,5],[3,6,9,2,5])

结果:
在这里插入图片描述

white:白色
sns.set_style('white')
plt.bar([1,2,3,4,5],[3,6,9,2,5])

结果:
在这里插入图片描述

ticks:这个与white只有一点点不同,显示了横轴的齿锯
sns.set_style('ticks')
plt.bar([1,2,3,4,5],[3,6,9,2,5])

结果:
在这里插入图片描述

我们还可以消掉边框sns.despine()
  • #去除图脊,默认去除上边和右边
sns.set_style('white')
plt.bar([1,2,3,4,5],[3,6,9,2,5])
sns.despine()#去除图脊,默认去除上边和右边

结果:
在这里插入图片描述

我们也可以去掉其它的边,强调下上下左右是top,bottom,left,right
sns.set_style('white')
plt.bar([1,2,3,4,5],[3,6,9,2,5])
sns.despine(left = True,bottom = True)

结果:
在这里插入图片描述

当然也可以去掉坐标轴数字
sns.set_style('white')
plt.bar([1,2,3,4,5],[3,6,9,2,5])
sns.despine(left = True,bottom = True)
#去除横纵坐标数字,设置为空
plt.xticks([])
plt.yticks([])

结果:
在这里插入图片描述

来个标题
  • Matplotlib中显示中文的语句在这里并不适用哦!
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})
plt.bar([1,2,3,4,5],[3,6,9,2,5])
plt.title("柱状图")

结果:
在这里插入图片描述

现在来看看sns.set_context

  • 可以用它来设置图形内部框和底色。
  • 有四种’paper’,‘notebook’,‘talk’,‘poster’。
help(sns.set_context)

结果:
在这里插入图片描述

'paper’风格下的图片
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})
sns.set_context("paper")
plt.bar([1,2,3,4,5],[3,6,9,2,5])
plt.title("柱状图")

结果:
在这里插入图片描述

poster风格下的图
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})
sns.set_context("poster")
plt.bar([1,2,3,4,5],[3,6,9,2,5])
plt.title("柱状图")

结果:
在这里插入图片描述

我们可以查看当前参数
  1. context当前参数
sns.plotting_context()

结果:
在这里插入图片描述
2. poster风格下默认参数

sns.plotting_context(context='poster')

结果:
在这里插入图片描述

我们可以通过修改参数来设置
sns.set_context('poster',font_scale=1.5,rc={"lines.linewidth":5.5})
plt.bar([1,2,3,4,5],[3,6,9,2,5])
plt.title("柱状图")

结果:
在这里插入图片描述
是不是与原始的’poster’风格的图片不一样了

Seaborn调色板

  • 在seaborn中颜色主要分为连续渐变色板和离散渐变色板。
  • 在分类色板中,主要用color_palette()函数:
    • color_palette()能传入任何Matplotlib所支持的颜色,不写入颜色则为默认参数
    • set_palette()设置所有图的颜色
  • 6个默认的颜色循环主题:deep、muted、pastel、bright、dark、colorblind。
color_palette方法返回默认的调色板信息
current_palette = sns.color_palette()
print(current_palette)
获取当前调色板样式
sns.palplot(current_palette)

结果:
在这里插入图片描述
我们这时画个柱状图会发现,是这调色板上的颜色

sns.barplot([1,2,3],[4,5,6],[9,6,3])

结果:
在这里插入图片描述

help(sns.palplot)

结果:
在这里插入图片描述

已知有6个默认的颜色循环主题:deep、muted、pastel、bright、dark、colorblind,我们来看几个
sns.palplot(sns.color_palette("bright"))

结果:
在这里插入图片描述

sns.palplot(sns.color_palette("muted"))

结果:
在这里插入图片描述

sns.palplot(sns.color_palette("pastel"))

结果:
在这里插入图片描述
发现这几个大多是透明度等方面的差别

使用自定义颜色,构造颜色版
color=['red','orange','pink','yellow','purple','blue','green']
print(sns.color_palette(color))
sns.palplot(sns.color_palette(color))

结果:在这里插入图片描述

我们还可以有渐变的调色板
sns.palplot(sns.color_palette("Blues"))

结果:
在这里插入图片描述

我们可以规定展示给我们看的颜色的数量
sns.palplot(sns.color_palette("Oranges",10))

结果:
在这里插入图片描述

获取全部的调色板的名称

我们随便敲,报错信息中有一大块,是seaborn中所有能提供的调色板

sns.palplot(sns.color_palette("1123456"))

结果:
在这里插入图片描述

'r’可以将颜色倒过来排序
sns.palplot(sns.color_palette("Oranges_r",10))

结果:
在这里插入图片描述

颜色还可以组合渐变,如黄色与绿色组合
sns.palplot(sns.color_palette("YlGn"))

结果:
在这里插入图片描述

下面来使用调色板吧
  1. 个别图使用色系
sns.barplot([1,2,3],[3,8,5],[4,5,6],palette=sns.color_palette('YlGn'))

结果:
在这里插入图片描述
2. 全局设置色系

sns.set_palette("YlGn")
sns.barplot([1,2,3],[4,5,6],[9,6,3])

结果:
在这里插入图片描述

我们可以自己调整调色板的亮度、饱和度等
sns.palplot(sns.color_palette("hls",15))

结果
在这里插入图片描述

下面改变下亮度和饱和度
sns.palplot(sns.hls_palette(15,l=0.3,s=0.9))

结果:
在这里插入图片描述

我们还可以交互式地进行颜色的调试

  1. 离散的颜色
#一个交互式的方法
sns.choose_cubehelix_palette()

结果:
在这里插入图片描述
2. 渐变的颜色

sns.choose_cubehelix_palette(as_cmap=True)

结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/meiqixiao/article/details/102535237