Educoder Basemap和Seaborn 第2关:Seaborn图形介绍
第2关:Seaborn图形介绍(代码看下边)
- 任务描述
- 相关知识
- 频次直方图、KDE和密度图
- 矩阵图
- 分面频次直方图
- 条形图
- 折线图
- 编程要求
- 测试说明
任务描述
本关任务:编写一个使用Seaborn
来绘制散点图的程序。
相关知识
Seaborn
的主要思想是用高级命令为统计数据探索和统计模型拟合创建各种图形,下面将介绍一些Seaborn
中的数据集和图形类型。
虽然所有这些图形都可以用Matplotlib
命令实现(其实Matplotlib
就是Seaborn
的底层),但是用 Seaborn API
会更方便。
频次直方图、KDE和密度图
在进行统计数据可视化时,我们通常想要的就是频次直方图和多变量的联合分布图。在Matplotlib
里面我们已经见过,相对比较简单:
data = np.random.multivariate_normal([0, 0], [[5, 2], [2, 2]], size=2000)
data = pd.DataFrame(data, columns=['x', 'y'])
for col in 'xy':
plt.hist(data[col], normed=True, alpha=0.5)
除了频次直方图,我们还可以用KDE
获取变量分布的平滑估计。在seaborn
通过sns.kdeplot
来实现:
for col in 'xy':
sns.kdeplot(data[col], shade=True)
使用distplot
可以将频次直方图和KDE
结合起来:
sns.distplot(data['x'])
sns.distplot(data['y'])
如果向kdeplot
输入的是二维数据集,那么就可以获得一个二维数据可视化图:sns.kdeplot(data)
;
矩阵图
当我们需要对多维数据进行可视化是,最终都要使用矩阵图,矩阵图对于探索多维数据不同维度间的相关性非常有效。
下面将用鸢尾花数据集来演示,其中有三种鸢尾花的花瓣与花萼数据:
data = pd.read_csv("iris.csv")
sns.pairplot(data,hue="species") #hue 选择分类列
分面频次直方图
有时观察数据最好的方法就是借助数据子集的频次直方图,Seaborn
的 FacetGrid
函数让这件事变得非常简单。
来看看某个餐厅统计的服务员收取小费的数据:
tips = pd.read_csv('tips.csv')
g = sns.FacetGrid(tips, col="time", row="smoker")
g = g.map(plt.hist, "total_bill", color="r")
条形图
对于时间序列数据可以使用sns.factorplot
画出条形图,下面将使用行星数据来演示:
planets = pd.read_csv('planets.csv')
with sns.axes_style('white'):
g = sns.factorplot("year", data=planets, aspect=2,
kind="count", color='steelblue')
g.set_xticklabels(step=5)
还可以对用不同方法发现行星的数量:
with sns.axes_style('white'):
g = sns.factorplot("year", data=planets, aspect=4.0, kind='count',
hue='method', order=range(2001, 2015))
g.set_ylabels('Number of Planets Discovered')
折线图
seaborn
绘制折线图使用lineplot
函数,该函数所传数据必须为一个pandas
数组,这一点跟matplotlib
里有较大的区别,并且一开始使用较为复杂。
首先sns.lineplot
里有几个参数值得注意:
x
:plot
图的x
轴label
;y
:plot
图的y
轴label
;ci
:与估计器聚合时绘制的置信区间的大小;data
: 所传入的pandas
数组。
x = np.linspace(100, 50, 6)
y = np.array([0.194173876, 0.161086478, 0.138896531, 0.129826697, 0.133716787, 0.152458326])
summary = []
for i in range(6):
x_t = x[i]
y_t = y[i]
summary.append([x_t, y_t])
data =pd.DataFrame(summary )
sns.lineplot(x=0,y=1,ci=None,data=data)
编程要求
本关的编程任务是补全右侧上部代码编辑区内的相应代码,根据输入的文件路径读取文件并使用factorplot
绘制关于smoker
字段的条形图以统计吸烟和不吸烟的人数,具体可视化要求如下:
设置
Seaborn
样式为white
;设置颜色为
steelblue
;设置
kind
为count
;图形的
figsize
为(10, 10)
;文件名为
Task2/img/T1.png
;具体要求请参见后续测试样例。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!
测试说明
平台会对你编写的代码进行测试,对比你输出的数值与实际正确的数值,只有所有数据全部计算正确才能进入下一关。
测试输入:
无测试输入
预期输出: 生成图片与预期图片一致
开始你的任务吧,祝你成功!
import matplotlib
matplotlib.use("Agg")
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings("ignore")
def student(file_path):# ********* Begin *********#plt.figure(figsize=(10,10))tips = pd.read_csv(file_path)with sns.axes_style('white'):sns.factorplot("smoker", data=tips, kind="count", color='steelblue')plt.savefig("Task2/img/T1.png")plt.show()# ********* End *********#
Educoder Basemap和Seaborn 第2关:Seaborn图形介绍相关推荐
- Educoder Basemap和Seaborn 第一关:Seaborn
第一关:Seaborn 任务描述 本关任务:编写一个绘制每个月销售总额的折线图. 相关知识 为了完成本关任务,你需要掌握:1.matplotlib的缺点,2.如何使用seaborn进行可视化,并设置整 ...
- Py之Seaborn:数据可视化Seaborn库的柱状图、箱线图(置信区间图)、散点图/折线图、核密度图/等高线图、盒形图/小提琴图/LV多框图的组合图/矩阵图实现
Py之Seaborn:数据可视化Seaborn库的柱状图.箱线图(置信区间图).散点图/折线图.核密度图/等高线图.盒形图/小提琴图/LV多框图的组合图/矩阵图实现 目录
- Py之seaborn:数据可视化seaborn库(二)的组合图可视化之密度图/核密度图分布可视化、箱型图/散点图、小提琴图/散点图组合可视化的简介、使用方法之最强攻略(建议收藏)
Py之seaborn:数据可视化seaborn库(二)的组合图可视化之密度图/核密度图分布可视化.箱型图/散点图.小提琴图/散点图组合可视化的简介.使用方法之最强攻略(建议收藏) 目录 二.组合图可视 ...
- python的seaborn下载_Python可视化 | Seaborn包—heatmap()
seaborn.heatmap()的参数 seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=Fals ...
- seaborn 教程_使用Seaborn进行数据可视化教程
seaborn 教程 "Seaborn makes the exploratory data analysis phase of your data science project beau ...
- Py之seaborn:数据可视化seaborn库(三)的矩阵图可视化之jointplot/JointGrid/pairplot/PairGrid/FacetGrid密度图等的函数源代码详解之最强攻略
Py之seaborn:数据可视化seaborn库(三)的矩阵图可视化之jointplot/JointGrid/pairplot/PairGrid/FacetGrid折线图/柱状图+散点图/矩形密度图的 ...
- Educoder Basemap和seaborn 第三关:Basemap
第3关:Basemap(代码在下边) 任务描述 相关知识 安装和使用 地图投影 地图背景 在地图上画数据 编程要求 测试说明 任务描述 本关任务:以中国地图为背景绘制散点图. 相关知识 Basemap ...
- python seaborn boxplot_Python学习笔记 - Seaborn如何画出histogram和boxplot
画图第一步:根据情况import模块宝宝:import matplotlib.pyplot as plt import seaborn as sns import pandas as pd impor ...
- 计算机:游戏25关,烧脑吃鸡大作战第25关怎么通关 第25关通关技巧介绍
老王的衣服湿了,快帮帮他这关怎么过?烧脑吃鸡大作战是一款考验脑力的答题游戏,玩家需要充分运用反向思维能力才能答出每关的答案.第25关怎么过呢?怎么才能让老王的衣服不淋到雨呢?还没通过的小伙伴快来看看这 ...
最新文章
- Java 文件上传下载管理器(控制台)
- Tomcat中两个不同项目共享Session
- 【JavaSE05】Java中方法与重载、递归-思维导图
- android JSONObject的使用
- POJ 3368 Frequent values (RMQ)
- 20应用统计考研复试要点(part19)--概率论与数理统计
- Python3调试类_io.BytesIO、_io.StringIO用法(Python3 IO编程之StringIO和BytesIO)
- Oracle数据空间的管理
- 树莓派竟出微控制器了!Raspberry Pi Pico 只需 4 美元!
- java编写计算器实现cancel_用Java编写的简易计算器
- 精通 Spring Boot 42 讲
- C语言卡路里程序,燃烧app的卡路里--app瘦身之路
- java indexeddb_indexedDB 基本使用
- shell中和||的用法
- Cesium中文教程-3D模型(3D Models)
- ognl表达式 讲解
- 隐藏Tomcat版本信息
- 安装一下openEuler ,看看菊厂多厉害
- 开票货物名称写计算机配件可以吗,增值税普通发票的商品名称到底可不可以写办公用品、食品等...
- HP3par 多路径存储磁盘使用方法
热门文章
- wsimport 的使用问题
- win7做wifi服务器
- mysql解决编码问题
- NASA 美国国家航空航天局开源项目列表
- 快速学习javascript 整体架构方法
- 【机器学习】竞争神经网络(Competitive Neural Network)的python实现
- Java 基础 匿名对象
- 有观赏性的c语言程序,设计一个C语言程序,对以孩子链表表示的树计算该树的深度- 一起装修网...
- linq to sql 行转列_n套SQL面试题--行转列、留存、日活等
- 基于matlab的光伏电池通用数学模型,基于MATLAB的光伏电池通用数学模型.doc