9 绘图实例(1) Drawing example(1)

(代码下载)
本文主要讲述seaborn官网相关函数绘图实例。具体内容有:

  1. Anscombe’s quartet(lmplot)
  2. Color palette choices(barplot)
  3. Different cubehelix palettes(kdeplot)
  4. Distribution plot options(distplot)
  5. Timeseries plot with error bands(lineplot)
  6. FacetGrid with custom projection(FacetGrid)
  7. Facetting histograms by subsets of data(FacetGrid)
  8. Line plots on multiple facets(relplot)
  9. Grouped barplots(catplot)
  10. Grouped boxplots(boxplot)
# import packages
# from IPython.core.interactiveshell import InteractiveShell
# InteractiveShell.ast_node_interactivity = "all"
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
sns.set(style="ticks")

1. Anscombe’s quartet(lmplot)

# Load the example dataset for Anscombe's quartet
df = sns.load_dataset("anscombe")
df.head()
# Show the results of a linear regression within each dataset 显示各组的回归拟合结果
# col确认分组类别,hue设置绘图颜色类别.col_wrap设置每行多少图像
# ci置信区间大小,palette颜色设置,height设置每张图的尺寸
sns.lmplot(x="x", y="y", col="dataset", hue="dataset", data=df,
col_wrap=2, ci=None, palette="muted", height=4,
scatter_kws={"s": 50, "alpha": 1});

2. Color palette choices(barplot)

#context控制上下文本参数
sns.set(style="white", context="talk")
rs = np.random.RandomState(8)
# Set up the matplotlib figure 设置matplotlib绘图参数
f, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(7, 5), sharex=True) # Generate some sequential data 建立数据集
x = np.array(list("ABCDEFGHIJ"))
y1 = np.arange(1, 11) # 第一个条形图
sns.barplot(x=x, y=y1, palette="rocket", ax=ax1);
# 绘制平行于x轴的水平参考线
ax1.axhline(0, color="k", clip_on=False)
# 添加标签
ax1.set_ylabel("Sequential") # Center the data to make it diverging
y2 = y1 - 5.5
sns.barplot(x=x, y=y2, palette="vlag", ax=ax2)
ax2.axhline(0, color="k", clip_on=False)
ax2.set_ylabel("Diverging") # Randomly reorder the data to make it qualitative 生成数据
y3 = rs.choice(y1, len(y1), replace=False)
sns.barplot(x=x, y=y3, palette="deep", ax=ax3)
ax3.axhline(0, color="k", clip_on=False)
ax3.set_ylabel("Qualitative") # Finalize the plot 绘图最后参数调整
# 去掉了上、右和下边界。注意,这里despine()函数默认会去除上方和右侧的边界,
# 如果想要去掉左边和下方的边界,就需要额外指定left=True, bottom=True
sns.despine(bottom=True)
# 去除了所有的纵轴刻度尺
plt.setp(f.axes, yticks=[])
# ight_layout设置了每行坐标轴(子图)之间的间隔,h_pad确定上下间隔
plt.tight_layout(h_pad=2)

3. Different cubehelix palettes(kdeplot)

sns.set(style="dark")
rs = np.random.RandomState(50) # Set up the matplotlib figure 设置图像
f, axes = plt.subplots(3, 3, figsize=(9, 9), sharex=True, sharey=True) # Rotate the starting point around the cubehelix hue circle
for ax, s in zip(axes.flat, np.linspace(0, 3, 10)): # Create a cubehelix colormap to use with kdeplot 颜色设置
cmap = sns.cubehelix_palette(start=s, light=1, as_cmap=True) # Generate and plot a random bivariate dataset
x, y = rs.randn(2, 50)
# 核函数估计图制作
sns.kdeplot(x, y, cmap=cmap, shade=True, cut=5, ax=ax)
ax.set(xlim=(-3, 3), ylim=(-3, 3)) f.tight_layout()

4. Distribution plot options(distplot)

sns.set(style="white", palette="muted", color_codes=True)
rs = np.random.RandomState(10) # Set up the matplotlib figure 设置matplolitlib参数
f, axes = plt.subplots(2, 2, figsize=(7, 7), sharex=True)
# 去除边框
sns.despine(left=True) # Generate a random univariate dataset
d = rs.normal(size=100) # Plot a simple histogram with binsize determined automatically 直方图
sns.distplot(d, kde=False, color="b", ax=axes[0, 0]) # Plot a kernel density estimate and rug plot 画核密度曲线
sns.distplot(d, hist=False, rug=True, color="r", ax=axes[0, 1]) # Plot a filled kernel density estimate
sns.distplot(d, hist=False, color="g", kde_kws={"shade": True}, ax=axes[1, 0]) # Plot a historgram and kernel density estimate
sns.distplot(d, color="m", ax=axes[1, 1]) # 隐藏y轴
plt.setp(axes, yticks=[])
plt.tight_layout()

5. Timeseries plot with error bands(lineplot)

sns.set(style="darkgrid")

# Load an example dataset with long-form data
fmri = sns.load_dataset("fmri") # Plot the responses for different events and regions 线条图
sns.lineplot(x="timepoint", y="signal",
hue="region", style="event",
#置信区间设置
#ci=None,
data=fmri);

6. FacetGrid with custom projection(FacetGrid)

sns.set()

# Generate an example radial datast 随机生成数据
r = np.linspace(0, 10, num=100)
df = pd.DataFrame({'r': r, 'slow': r, 'medium': 2 * r, 'fast': 4 * r}) # Convert the dataframe to long-form or "tidy" format
df = pd.melt(df, id_vars=['r'], var_name='speed', value_name='theta') # Set up a grid of axes with a polar projection 建立坐标轴
# col表示使用什么分图,这里是speed,并用hue设置不同类对应不同颜色
# subplot_kws确定坐标类型,这里是极坐标
g = sns.FacetGrid(df, col="speed", hue="speed",
subplot_kws=dict(projection='polar'), height=4.5,
sharex=False, sharey=False, despine=False) # Draw a scatterplot onto each axes in the grid
# 在实例化后的坐标轴上画图
g.map(sns.scatterplot, "theta", "r");

7. FacetGrid with custom projection(FacetGrid)

sns.set(style="darkgrid")

tips = sns.load_dataset("tips")
# 初始化坐标轴,margin_titles行变量的标题被绘制到最后一列的右侧
g = sns.FacetGrid(tips, row="sex", col="time", margin_titles=True)
bins = np.linspace(0, 60, 13)
g.map(plt.hist, "total_bill", color="steelblue", bins=bins);

8. Line plots on multiple facets(relplot)

sns.set(style="ticks")

dots = sns.load_dataset("dots")

# Define a palette to ensure that colors will be
# shared across the facets
# 设置颜色
palette = dict(zip(dots.coherence.unique(),
sns.color_palette("rocket_r", 6))) # Plot the lines on two facets
sns.relplot(x="time", y="firing_rate",
hue="coherence", size="choice", col="align",
# size_order画图顺序
size_order=["T1", "T2"], palette=palette,
# aspect图的比例,facet_kws每个图参数设置
height=5, aspect=0.75, facet_kws=dict(sharex=False),
# kind画图类型,legend图例类型
kind="line", legend="brief", data=dots);

9. Grouped barplots(catplot)

sns.set(style="whitegrid")

# Load the example Titanic dataset 读取数据
titanic = sns.load_dataset("titanic") # Draw a nested barplot to show survival for class and sex
# catplot分类数据作图
g = sns.catplot(x="class", y="survived", hue="sex", data=titanic,
height=6, kind="bar", palette="muted")
# 设置轴框
g.despine(left=True)
# 设置标签
g.set_ylabels("survival probability");

10. Grouped boxplots(boxplot)

sns.set(style="ticks", palette="pastel")

# Load the example tips dataset
tips = sns.load_dataset("tips") # Draw a nested boxplot to show bills by day and time
# 画箱形图 hue颜色
sns.boxplot(x="day", y="total_bill",
hue="smoker", palette=["m", "g"],
data=tips)
# offset 两轴偏移绝对距离,trim只显示主要刻度
sns.despine(offset=10,trim=True)

[seaborn] seaborn学习笔记9-绘图实例(1) Drawing example(1)的更多相关文章

  1. [seaborn] seaborn学习笔记11-绘图实例(3) Drawing example(3)

    11 绘图实例(3) Drawing example(3)(代码下载) 本文主要讲述seaborn官网相关函数绘图实例.具体内容有: Plotting a diagonal correlation m ...

  2. [seaborn] seaborn学习笔记12-绘图实例(4) Drawing example(4)

    文章目录 12 绘图实例(4) Drawing example(4) 1. Scatterplot with varying point sizes and hues(relplot) 2. Scat ...

  3. [seaborn] seaborn学习笔记10-绘图实例(2) Drawing example(2)

    文章目录 10 绘图实例(2) Drawing example(2) 1. Grouped violinplots with split violins(violinplot) 2. Annotate ...

  4. webgl学习笔记二-绘图多点

    写在前面 建议先看下第一篇webgl学习笔记一-绘图单点 第一篇文章,介绍了如何用webgl绘图一个点.接下来本文介绍的是如何绘制多个点.形成一个面. webgl提供了一种很方便的机制,即缓冲区对象, ...

  5. Android应用开发学习笔记之绘图

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 一.绘图常用类介绍 在Android中绘图时,常用到的几个类是Paint.Canvas.Bitmap和Bitmapt ...

  6. iOS学习笔记08-Quartz2D绘图

    一.Quartz2D简单介绍 在iOS中常用的绘图框架就是Quartz2D,Quartz2D是Core Graphics框架的一部分,我们日常开发使用的所有UIKit组件都是由Core Graphic ...

  7. tensorflow学习笔记三:实例数据下载与读取

    一.mnist数据 深度学习的入门实例,一般就是mnist手写数字分类识别,因此我们应该先下载这个数据集. tensorflow提供一个input_data.py文件,专门用于下载mnist数据,我们 ...

  8. XML学习笔记7——XSD实例

    在前面的XSD笔记中,基本上是以数据类型为主线来写的,而在我的实际开发过程中,是先设计好了XML的结构(元素.属性),并写好了一份示例,然后再反过来写XSD文件(在工具生成的基础上修改),也就是说,是 ...

  9. python学习笔记-练手实例

    1.题目:输出 9*9 乘法口诀表.     程序分析:分行与列考虑,共9行9列,i控制行,j控制列     代码: for i in range(1,10): print ('\r') for j ...

随机推荐

  1. 两将军问题和TCP三次握手

    两将军问题,又被称为两将军悖论.两军问题, 是一个经典的计算机思想实验. 首先, 为避免混淆,我们需要认识到两将军问题虽然与拜占庭将军问题相关,但两者不是一个东西.拜占庭将军问题是一个更通用的两将军问 ...

  2. Windows Socket 接口简介

    Windows Socket接口是Windows下网络编程的接口,在介绍Windows Socket接口之前,首先要简单介绍一下TCP/IP协议和描述网络系统架构的 OSI模型,以及TCP/IP模型 ...

  3. JavaScript基本语法(数组与JSON)

    5.数组 #①使用new关键字创建数组 // 1.创建数组对象 var arr01 = new Array(); // 2.压入数据 arr01.push("apple"); ar ...

  4. 第二阶段:高级核心基础知识·第1章Linux三剑客·1

    1.用vmware添加一块10G的硬盘,且永久挂载到/data01中,写出详细的步骤 2.用自己语言描述raid0和raid1的区别 RAID 0: 将两个或以上相同信号,容量的硬盘组合,磁盘阵列的总 ...

  5. Linux系统命令基础

    Linux系统命令基础 前面咱们已经成功安装了Linux系统--centos7,那么现在奔向Linux命令行的世界. Linux命令格式 1.一般情况下,[参数]是可选的,一些情况下[文件或路径]也是 ...

  6. linux读写一个NTFS分区

    为了读写一个NTFS分区的数据,挂载的时候出现错误提示如下: root@tv:/home/xx# mount -t ntfs-3g /dev/sdb1 /media/sxx/硬盘B-临时文件 The ...

  7. pod(八):pod的调度——将 Pod 指派给节点

    目录 一.系统环境 二.前言 三.pod的调度 3.1 pod的调度概述 3.2 pod自动调度 3.2.1 创建3个主机端口为80的pod 3.3 使用nodeName 字段指定pod运行在哪个节点 ...

  8. 使用kubeadm方式搭建K8S集群

    使用kubeadm方式搭建K8S集群 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Ma ...

  9. .NET深入了解哈希表和Dictionary

    引子 问题:给定一串数字{1,2,5,7,15,24,33,52},如何在时间复杂度为O(1)下,对数据进行CURD? 数组:我创建一个Length为53的数组,将元素插入相同下标处,是不是就可以实现 ...

  10. WSL下的Ubuntu 18.04LTS配置软件源和系统更新

    WSL下的Ubuntu 18.04LTS配置软件源和系统更新 设置系统语言为中文 # 安装中文支持 sudo apt-get install -y language-pack-zh-hans # 设置 ...