【数据分析】(task4)数据可视化

news2024/9/25 1:14:56

note

  • matplotlib的四个容器:
    • Figure:顶层级,用来容纳子 Axes,一组具体绘图元素和画布(canvas)。 画板。
    • Axes:matplotlib宇宙的核心,容纳了大量元素用来构造一幅幅子图,一个figure可以由一个或多个子图组成。 子图。
    • Axis:axes的下属层级,用于处理所有和坐标轴,网格有关的元素。 子图的坐标轴、网格
    • Tick:axis的下属层级,用来处理所有和刻度有关的元素。 坐标轴的刻度。
  • 通过matplotlib.plot函数可以绘制曲线(折线),每个plot函数对应一条曲线。

文章目录

  • note
  • 一、matplotlib基础使用
  • 二、任务
    • 2.1 男女中生存人数分布情况
    • 2.2 男女中生存人与死亡人数的比例图
    • 2.3 不同票价的人生存和死亡人数分布情况
    • 2.5 不同仓位等级的人生存和死亡人员的分布情况
    • 2.6 不同年龄的人生存与死亡人数分布情况
    • 2.7 不同仓位等级的人年龄分布情况
  • 三、其他数据可视化模块
  • 时间安排
  • Reference

一、matplotlib基础使用

(1)primitives 和 container的区别和联系:分别用于控制可视化图表中的哪些要素
相当于:container是画板,primitives是画板上的画;
primitive是基本要素,它包含一些我们要在绘图区作图用到的标准图形对象,如曲线Line2D,文字text,矩形Rectangle,图像image等。
container是容器,即用来装基本要素的地方,包括图形figure、坐标系Axes和坐标轴Axis。

(2)四个容器的联系和区别是么?他们分别控制一张图表的哪些要素?

  • Figure:顶层级,用来容纳子 Axes,一组具体绘图元素和画布(canvas)。 画板。
  • Axes:matplotlib宇宙的核心,容纳了大量元素用来构造一幅幅子图,一个figure可以由一个或多个子图组成。 子图。
  • Axis:axes的下属层级,用于处理所有和坐标轴,网格有关的元素。 子图的坐标轴、网格
  • Tick:axis的下属层级,用来处理所有和刻度有关的元素。 坐标轴的刻度。

在这里插入图片描述
最简单的设置图片的宽度和高度方式:

plt.figure(figsize=(n, n))

二、任务

2.1 男女中生存人数分布情况

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
text = pd.read_csv(r'result.csv')
# text.columns
# Index(['Unnamed: 0', 'PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age',
#       'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],
#      dtype='object')
text.head()

sex = text.groupby('Sex')['Survived'].sum()
sex.plot.bar()
plt.title('survived_count')
plt.show()

根据性别groupby分组然后sum统计Survived列。
在这里插入图片描述

2.2 男女中生存人与死亡人数的比例图

stack是将列属性转为行索引,而unstack则是相反,将花括号结构转为常规的初始化结构。

# 提示:计算男女中死亡人数 1表示生存,0表示死亡
text.groupby(['Sex','Survived'])['Survived'].count().unstack().plot(kind='bar',stacked='True')
# unstack的作用
plt.title('survived_count')
plt.ylabel('count')

在这里插入图片描述
分析:上图显示女性群体中存活比例,比男性群体存活比例高;船上男性人数是女性的将近2倍。

2.3 不同票价的人生存和死亡人数分布情况

# 计算不同票价中生存与死亡人数 1表示生存,0表示死亡
fare_sur = text.groupby(['Fare'])['Survived'].value_counts().sort_values(ascending=False)
# 排序后绘折线图
fig = plt.figure(figsize=(4, 4))
# fig = plt.figure(figsize=(20, 18))
fare_sur.plot(grid=True)
plt.legend()
plt.show()

可以看到是先统计每个票价对应的生存人数得到fare_sur,然后绘制折线图。
在这里插入图片描述
如果我们没有排序sort_values,柱状图:

fare_sur1 = text.groupby(['Fare'])['Survived'].value_counts()
fig = plt.figure(figsize=(4, 4))
# fig = plt.figure(figsize=(20, 18))
fare_sur1.plot(grid=True)
plt.legend()
plt.show()

在这里插入图片描述

2.5 不同仓位等级的人生存和死亡人员的分布情况

和上面一样操作,先分组:

# 1表示生存,0表示死亡
pclass_sur = text.groupby(['Pclass'])['Survived'].value_counts()
pclass_sur

这里可以使用seaborn库进行可视化,从下图可视化图,看出第三类仓位的遇难人数非常多,第一类仓位的存活人数比遇难人数更多;第一类高级仓位也是三个仓位中,唯一一个仓位是存活人数更多的。

官网对seaborn.countplot的解释:seaborn.countplot(x =无,y =无,hue =无,数据=无,顺序=无,hue_order =无,orient =无,color =无,palette = None,饱和度= 0.75,dodge = True,ax = None,* * kwargs )

countplot是seaborn库中分类图的一种,能使用条形现实每个分箱器中的观察计数。countplot的参数hue标签可以继续划分,进行统计个数。

import seaborn as sns
sns.countplot(x="Pclass", hue="Survived", data=text)

在这里插入图片描述

2.6 不同年龄的人生存与死亡人数分布情况

seaborn.FaceGrid函数的基本流程:使用数据集和用于构造网络的变量来初始化对象,通过FacetGrid.map将一个or多个绘图函数应用于每个子集FacetGrid.map_dataframe(),然后进行更改轴标签or添加图例等操作:

fg = (
    sns.FacetGrid(data = Totaldata, hue = 'label' , col = 'index', row = 'row', height = 2.5, aspect = 1.25)
        .map(probscale.probplot, 'y', marker='.', markersize=0.005, ) 
        .set_axis_labels(x_var='X', y_var = 'Y')
        .add_legend()
)
import seaborn as sns 
facet = sns.FacetGrid(text, hue="Survived",aspect=3)
facet.map(sns.kdeplot,'Age',shade= True)
facet.set(xlim=(0, text['Age'].max()))
facet.add_legend()

在这里插入图片描述
分析:从上图中看出遇难群体中,24岁人群是众数;存活群体中,28岁人群是众数;在60-80岁的高龄群体中,看出遇难人数比存活人数更多,也有可能是这群老人逃生不方便;在0-14岁小孩群体中,存活人数相对比遇难人数多得多,看出在船上逃生很多人把生存机会优先让给小孩了。

2.7 不同仓位等级的人年龄分布情况

通过matplotlib.plot函数可以绘制曲线(折线),每个plot函数对应一条曲线。

text.Age[text.Pclass == 1].plot(kind='kde')
text.Age[text.Pclass == 2].plot(kind='kde')
text.Age[text.Pclass == 3].plot(kind='kde')
plt.xlabel("age")
plt.legend((1,2,3),loc="best")

在这里插入图片描述

三、其他数据可视化模块

可以继续尝试pyecharts,bokeh等模块。

时间安排

任务任务内容时间完成情况
-1月16日周一开始
Task01:数据加载及探索性数据分析(第一章第1,2,3节)(2天)16-17日周二完成
Task02:数据清洗及特征处理(第二章第1节)(2天)18-19日周四完成
Task03:数据重构(第二章第2,3节)(2天)20-21日周六完成
Task04:数据可视化(第二章第4节)(2天)22-23日周一完成
Task05:数据建模及模型评估(第三章第1,2节)(3天)24-26日周四

Reference

[1] https://github.com/datawhalechina/hands-on-data-analysis
[2] https://github.com/yizhen20133868/Plot-Pictures-Tutorial-for-Paper
[3] matplotlib之折线图(代码+解析)
[4] http://seaborn.pydata.org/api.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/176101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【QT5.9】与MFC对比学习笔记-感悟篇【2023.01.22】

简介 在公司从事MFC的程序维护一年两个月,期间因为公司被QT告侵权对QT产生了抵触的心情。现在无奈要用到,需要抓紧学习了。 正文 1.数据模型 先说下刚用到的模型,模型也叫数据模型,也就是耳熟的MVC架构中的M(Model…

我用笨办法啃下了一个开源项目的源码!

目录 1、从最简单的源码开始:别幻想一步登天 2、循序渐进:先搞定底层依赖的技术 3、一定要以Hello World作为入口来阅读 4、抓大放小,边写注释边画图 5、反复三遍,真正理解源码 6、借力打力,参考源码分析书籍及博客 7…

研一寒假C++复习笔记--引用的使用

​​​​​​​ 目录 1--引用的基本语法 2--引用的注意事项 3--在函数参数中使用引用 4--引用作函数的返回值 5--引用的本质 6--常量引用 1--引用的基本语法 引用相当于给变量起别名&#xff0c;其基本语法如下&#xff1a; 数据类型 &别名 原名 # include <…

Linux操作系统之进程信号

代码存放在&#xff1a;https://github.com/sjmshsh/System-Call-Learn/tree/master/signal 我们先来看一张图&#xff0c;了解一下通过阅读本博客&#xff0c;你可以收获什么。 背景知识 首先我说明一点 信号 ! 信号量 我们这篇文章讲解的是信号&#xff0c;不是信号量 信…

POJ3263. Tallest Cow题解(c++ 前缀和)

POJ3263. Tallest Cow 传送门&#xff1a;Tallest Cow 题目&#xff1a; 有N头牛站成一行。两头作能够相支看见&#xff0c;当且仅当它们中间的牛身高都比它们矮。现在&#xff0c;我们只知道其中最高的牛是第P头&#xff0c;它的身高是H&#xff0c;不知道剩余N-1头牛的身高。…

大数据之Kafka高级知识点

文章目录前言一、分片和副本机制&#xff08;一&#xff09;分片机制&#xff08;二&#xff09;副本二、Kafka如何保证数据不丢失&#xff08;一&#xff09;Producer生产者&#xff08;二&#xff09;Broker&#xff08;三&#xff09;Consumer消费者三、消息存储和查询机制总…

重新设计 TCP 协议

看一段关于 TCP 协议的历史讨论&#xff0c;源自&#xff1a;The design philosophy of the DARPA internet protocols 读这段文字时&#xff0c;你可能觉得这不是在谈 TCP&#xff0c;而是在创造一个新协议&#xff0c;但事实上这就是 TCP 在被创造过程中真实的纠结。 现在来…

Java知识点细节简易汇总——(6)面向对象编程(中级部分)

一、IDE快捷键 删除当前行, 默认是 ctrl Y 自己配置 ctrl d复制当前行, 自己配置 ctrl alt 向下光标补全代码 alt /添加注释和取消注释 ctrl / 【第一次是添加注释&#xff0c;第二次是取消注释】导入该行需要的类 先配置 auto import , 然后使用 altenter 即可快速格式化…

Day867.事务隔离 -MySQL实战

事务隔离 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于事务隔离的内容。 提到事务&#xff0c;肯定不陌生&#xff0c;和数据库打交道的时候&#xff0c;总是会用到事务。 最经典的例子就是转账&#xff0c;你要给朋友小王转 100 块钱&#xff0c;而此时你的银行…

[前端笔记——CSS] 10.层叠与继承、选择器

[前端笔记——CSS] 10.层叠与继承、选择器1.层叠与继承1.1 冲突规则1.2 继承1.3 层叠1.4 CSS位置的影响2.选择器2.1 选择器是什么&#xff1f;2.2 选择器列表2.3 选择器的种类类型、类和 ID 选择器标签属性选择器伪类与伪元素运算符选择器参考表1.层叠与继承 1.1 冲突规则 CS…

一起自学SLAM算法:8.1 Gmapping算法

连载文章&#xff0c;长期更新&#xff0c;欢迎关注&#xff1a; 下面将从原理分析、源码解读和安装与运行这3个方面展开讲解Gmapping 算法。 8.1.1 Gmapping原理分析 首先要知道&#xff0c;Gmapping是一种基于粒子滤波的算法。在7.7.2节中已经提到过用RBPF&#xff08;Rao-…

linux系统中使用QT实现APP开发的基本方法

大家好&#xff0c;今天主要和大家分享一下&#xff0c;如何使用QT进行APP的主界面开发的方法。 目录 第一&#xff1a;APP界面开发基本简介 第二&#xff1a;滑动界面实现 第三&#xff1a;APP界面开发实现 第四&#xff1a;APP主界面测试 第一&#xff1a;APP界面开发基本…

ARP渗透与攻防(一)之ARP原理

ARP原理 前言 ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗&#xff0c;能够在网络中产生大量的ARP通信量使网络阻塞&#xff0c;攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目&#xff0c;造成网络中断或中间人攻击。ARP攻击主要是存在…

CSS3基础内容

目录 CSS基本样式 选择器分类 标签选择器 类选择器 利用类选择器画三个盒子 多类名 id选择器 id选择器和类选择器的区别 通配符选择器 CSS字体属性 字体粗细font-weight 字体样式 CSS文本属性 CSS的引入方式 行内样式表&#xff08;行内式&#xff09; 内部样式表…

2023年集卡活动简记

文章目录支付宝总评&#xff1a;【强烈推荐】年味浓&#xff0c;必中奖&#xff0c;单倍金额不算少。只关注开奖可以除夕当天玩儿。集卡分1.88元难度&#xff1a;【非常低】必中奖时间投入&#xff1a;【较少】无需打开其他App&#xff0c;比较轻松。操作体验&#xff1a;【好】…

深度理解卷积神经网络

神经网络包括卷积层&#xff0c;池化层&#xff0c;全连接层。一个最简单的神经元结构&#xff0c;假如有三个输入&#xff0c;都对应一个权重参数&#xff0c;然后通过权重加起来&#xff0c;经过一个激活函数&#xff0c;最后输出y。CNN中独特的结构就是卷积层&#xff0c;就…

拓展:阿里巴巴中文站架构演进分析【部分】

文章目录前言阿里巴巴中文站架构发展历程阿里巴巴第五代架构数据架构的复杂前言 由学习整理而来&#xff0c;并非有意抄袭。如果有冒犯行为&#xff0c;请及时联系作者进行处理&#xff01; 阿里巴巴中文站架构发展历程 时间关键技术1999第一代网站架构Perl&#xff0c;CGl&…

【实操案例八】元组、集合操作 实例代码及运行效果图!

任务一&#xff1a;我的咖啡馆你做主 方法一&#xff1a;使用列表 # 任务一&#xff1a;我的咖啡馆你做主 # 方法一&#xff1a;使用列表lst[蓝山,卡布奇诺,拿铁,皇家咖啡,女王咖啡,美丽与哀愁]for i in lst:print(lst.index(i)1,.,i,end\t) print()while True:chice int(in…

SpringCloud+Ribbon 报错:java.net.unknownhostexception:XXX

SpringCloudRibbon 报错&#xff1a;java.net.unknownhostexception:XXX 问题分析&#xff1a; 网上很多的说法是依赖冲突导致&#xff0c;原因是什么呢&#xff1a;如果你的org.springframework.cloud:spring-cloud-starter-netflix-eureka-client 依赖中包含了ribbon依赖&…

常用JVM配置参数简介

既然学习JVM&#xff0c;阅读GC日志是处理Java虚拟机内存问题的基础技能&#xff0c;它只是一些人为确定的规则&#xff0c;没有太多技术含量。 既然如此&#xff0c;那么在IDE的控制台打印GC日志是必不可少的了。现在就告诉你怎么打印。 &#xff08;1&#xff09;如果你用的是…