05-01 seaborn
1、Seaborn
在上节中我们学习了matplotlib,这节课我们来看看另一个可视化的模块seaborn
,它是基于matplotlib的更高级的开源库,主要用作于数据可视化,解决了matplotlib的两大问题。正如Michael Waskom所说的:Matplotlib试着让简单的事情更加简单,困难的事情变得可能,那么Seaborn就是让困难的东西更加简单。
使用matplotlib最大的问题就是它默认的各种参数,在serborn当中则完全避免了这些问题
# 导入模块
import matplotlib.pyplot as plt
import pandas as pd
# 初始化 Figure 和 Axes 对象
fig, ax = plt.subplots()
# 加载数据
tips = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv")
# 创建 violinplot
ax.violinplot(tips["total_bill"], vert=False)
# 导入模块
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
# 加载数据
tips = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv")
# 创建 violinplot
sns.violinplot(x = "total_bill", data=tips)
# 展示图像
plt.show()
使用matplotlib,通常都需要我们自己来增加颜色、刻度标签等一些样式。seaborn就是matplotlib的延伸,如果会用matplotlib,那么使用seaborn也没问题
2、加载数据
使用seaborn不仅可以将自己本地的数据绘制成图表,还可以使用库本身提供的内置数据集
2.1、加载内置数据集
可以通过load_dataset()
来使用内置的seaborn数据集,需要查看所有内置数据集可以点击https://github.com/mwaskom/seaborn-data
# 导入模块
import seaborn as sns
import matplotlib.pyplot as plt
# 加载鸢尾花数据
iris = sns.load_dataset("iris")
# 构建 iris plot
sns.swarmplot(x="species", y="petal_length", data=iris)
# 展示 图像
plt.show()
2.2、加载本地数据集
数据可视化大部分的应用场景都是使用自己的数据集,seaborn主要适用于我们平时常用的DataFrame数组。它是一种类似于二维数组的数据结构。
Seaborn对DataFrame非常友好的原因是,因为DataFrame的标签会自动导入到图表当中。在第一个Seaborn示例中绘制的一个小提琴图像,x轴会自动添加一个标签`total_bill`,这个在matplotlib中就需要我们自己手动添加了。
# 导入模块
import matplotlib.pyplot as plt
import seaborn as sns
import tushare as ts
data = ts.get_k_data('000001')
data = data.tail()
# 建立一个 factorplot
g = sns.factorplot('high','low',data=data, kind="bar",palette="muted", legend=False)
# 展示图像
plt.show()
3、配置
3.1、在seaborn中使用matplotlib的默认值
# Import Matplotlib
import matplotlib.pyplot as plt
# 查看所有可用的样式
plt.style.available
# 使用matplotlib的默认值
plt.style.use("classic")
['bmh',
'classic',
'dark_background',
'fast',
'fivethirtyeight',
'ggplot',
'grayscale',
'seaborn-bright',
'seaborn-colorblind',
'seaborn-dark-palette',
'seaborn-dark',
'seaborn-darkgrid',
'seaborn-deep',
'seaborn-muted',
'seaborn-notebook',
'seaborn-paper',
'seaborn-pastel',
'seaborn-poster',
'seaborn-talk',
'seaborn-ticks',
'seaborn-white',
'seaborn-whitegrid',
'seaborn',
'Solarize_Light2',
'tableau-colorblind10',
'_classic_test']
3.2、在matplotlib中使用seaborn的颜色作为色彩
可以使用color_palette()来定义要使用的颜色映射和参数n_colors的颜色数
# 导入相关模块
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import ListedColormap
# 定义一个变量N
N = 500
# 构建 colormap
current_palette = sns.color_palette("muted", n_colors=5)
cmap = ListedColormap(sns.color_palette(current_palette).as_hex())
# 初始化数据
data1 = np.random.randn(N)
data2 = np.random.randn(N)
# 产生随机数标签
colors = np.random.randint(0,5,N)
# 创建散点图图表
plt.scatter(data1, data2, c=colors, cmap=cmap)
# 添加颜色条
plt.colorbar()
# 展示图像
# plt.show()
<matplotlib.colorbar.Colorbar at 0x23f39041828>
3.3、在seaborn中旋转标签文本
# Import the necessary libraries
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
# 初始化数据
x = 10 ** np.arange(1, 10)
y = x * 2
data = pd.DataFrame(data={'x': x, 'y': y})
# 创建 lmplot
grid = sns.lmplot('x', 'y', data, size=7, truncate=True, scatter_kws={"s": 100})
# 在X轴上旋转标签
grid.set_xticklabels(rotation=90)
# 展示图像
# plt.show()
<seaborn.axisgrid.FacetGrid at 0x23f39090b38>
05-01 seaborn的更多相关文章
- Python小白的数学建模课-05.0-1规划
0-1 规划不仅是数模竞赛中的常见题型,也具有重要的现实意义. 双十一促销中网购平台要求二选一,就是互斥的决策问题,可以用 0-1规划建模. 小白学习 0-1 规划,首先要学会识别 0-1规划,学习将 ...
- Cheatsheet: 2016 05.01 ~ 05.31
Other Awesome Go - A curated list of awesome Go frameworks, libraries and software Visual Studio Cod ...
- Cheatsheet: 2015 05.01 ~ 05.31
.NET .NET on Mac for the OS X n00b without Mono via Visual Studio Code Microsoft frameworks deprecat ...
- Cheatsheet: 2014 05.01 ~ 05.31
Web Choosing a Web Framework/Language Combo for the Next Decade Optimizing NGINX and PHP-fpm for hig ...
- EZ 2018 05 01 NOIP2018 模拟赛(十一)
莫名其妙暴涨Rating 其实题目都挺好挺简单的,但是越简单就越容易ZZ 不理解问什么第一题这么多人找环 不过T2是真心细节题,T3太难了 题目戳这里 T1 仔细分析题意发现那个交换规则就是废话,如果 ...
- Cheatsheet: 2018 05.01 ~ 07.31
JAVA Java Tips: Creating a Monitoring-Friendly ExecutorService Other Modeling the Card Game War in C ...
- Cheatsheet: 2017 05.01 ~05.31
Web Configuring Your .npmrc for an Optimal Node.js Environment Web Developer Security Checklist HTTP ...
- 「JavaSE 重新出发」05.01.02 hashCode 方法、toString 方法
hashCode 方法 散列码(hash code)是由对象导出的一个整形值(可以是负数).其是没有规律的,如果x与y是两个不同的对象,则x.hashCode()与y.hashCode()基本上不会相 ...
- 「JavaSE 重新出发」05.01.01 equals 方法
equals 方法示例 // 代码来自<Java核心技术 卷I>P167 // 父类 public class Employee{ ... public boolean equals(Ob ...
- 「JavaSE 重新出发」05.01 继承
继承 一个对象变量可以指示多种实际类型的现象被称为多态(polymorphism). 在运行时能够自动地选择调用哪个方法的现象称为动态绑定(dynamic binding). 如果是private方法 ...
随机推荐
- vscode源码分析【一】从源码运行vscode
安装git,nodejs和yarn 安装Python27,3.x版本的不行,确保它在你的环境变量里: 安装gulp npm install --global gulp-cli 安装windows bu ...
- 将scrapy爬取数据通过django入到SQLite数据库
1. 在django项目根目录位置创建scrapy项目,django_12是django项目,ABCkg是scrapy爬虫项目,app1是django的子应用 2.在Scrapy的settings.p ...
- 由浅入深,讲解 spring 实战详细使用——spring 源码篇
首先,这篇文章不会详细的深入底层源码,只是基于注解和配置来说说我们的 spring 的使用,别小看基础,保证有你没用过的注解和配置,走起. 我们先来建立一个 maven 项目,引入 spring 文件 ...
- 01-String(键命令)
Redis Redis是一个高性能的Key-Value数据库. 学习目标 能够描述出什么是 nosql 能够说出 Redis 的特点 能够根据参考资料修改常用Redis配置 能够写出Redis中str ...
- Jenkins操作学习 --邮箱配置及测试结果构建
前言 使用jenkins做持续集成工具,构建的整个过程中,肯定要对结果进行记录和跟踪,这里我们以qq邮箱为例,来讲解如何配置jenkins的邮箱及发送构建结果 一.明确邮箱服务器相关信息 这里我们,要 ...
- Linux 内存释放
简介 linux 内存释放通过如下命令,将cache与buff根据环境进行释放操作,避免重启释放内存. 操作 1.将内存中buff数据保存磁盘 sync 2.清理cache与buff缓存 echo 3 ...
- 黄聪:table自适应宽度和高度
自适应宽度: td { width: 1px; white-space: nowrap; /* 自适应宽度*/ word-break: keep-all; /* 避免长单词截断,保持全部 */ } 自 ...
- MongoDB 修改数据Cannot change the size of a document in a capped collection: * != *"
MongoDB修改数据库数据的时候报错 原因: 集合被设置成了 固定集合 .固定集合的数据不能被修改.只能查找-删除-再插入,也就是创建集合的时候设置了capped参数为true 解决: 创建集合的时 ...
- CLRCore(CLR核心机制)
JIT--第一次--标记已--存根--调用--查找存根--执行机器码 C#和CIL的关系: C#和N#都是CIL实现,但是彼此不能互通: C#和N#公开不分满足规范,我们才能互通 CLS就是描述多语言 ...
- Entity Framework 基础操作(1)
EF是微软推出的官方ORM框架,默认防注入可以配合LINQ一起使用,更方便开发人员. 首先通过SQLSERVER现在有的数据库类生产EF 右键->添加->新建项,选择AOD.NET实体数据 ...