数据可视化训练第6天(美国人口调查获得关于收入与教育背景的数据,并且可视化)

news2025/4/6 1:52:52

数据来源

https://archive.ics.uci.edu/dataset/2/adult

过程

首先;关于教育背景的部分翻译有问题。
本次使用字典嵌套记录数据,并且通过lambda在sorted内部进行对某个字典的排序,最后用plotly进行绘图
本次提取数据的时候,用到了array的布尔型数组,这是比较方便的一种做法

import numpy as np
import matplotlib.pyplot as plt
from plotly.graph_objs import Bar,Layout
from plotly import offline

filename='/Users/oommnn/Desktop/学习笔记/数据可视化30天项目/adult.csv'
change_educations=['学士','大专','11年级','研究生','教授','副学士','副学士','9年级','7 -8年级','12年级',
                  '硕士','1 -4年级','10年级','博士','5 -6年级','学前']
educations=[' Bachelors', ' Some-college', ' 11th', ' HS-grad', ' Prof-school',
            ' Assoc-acdm', ' Assoc-voc', ' 9th', ' 7th-8th', ' 12th', ' Masters', ' 1st-4th', 
            ' 10th', ' Doctorate', ' 5th-6th', ' Preschool']

#生成结果字典
results={}
for education in change_educations:
    results[education]={'sum':0,'sum_over_50k':0,'ratio':0.0}

user_info=np.dtype([('education','U20'),('income','U10')])
data=np.loadtxt(filename,delimiter=',',dtype=user_info,usecols=(3,14))

#替换数据
i=0
for education in educations:
    flag=(data['education']==education)
    data['education'][flag]=change_educations[i]
    i=i+1
    
#获得总数和超过50k的数据
for education in change_educations:
    isedu=data['education']==education
    #记录每个学位的总人数
    results[education]['sum']=len(data['education'][isedu])
    #获得超过50k的该学位的布尔数组
    isrel=data[isedu]['income']==' >50K'
    results[education]['sum_over_50k']=len(data[isedu][isrel])
    results[education]['ratio']=results[education]['sum_over_50k']/results[education]['sum']

#key=lambda item: item[1] 是Python中用于排序或过滤列表的一个常见表达式。
#这里的 lambda 创建了一个匿名函数,它接受一个参数 item(假设是一个元组或其他可迭代对象),然后返回 item 的第二个元素,即 item[1]。
#返回的是列表的元组;按照item进行排序
sorted_items_by_values = sorted(results.items(), key=lambda item: item[1]['ratio'],reverse=True)
sorted_dict_by_values = dict(sorted_items_by_values)
#print(sorted_items_by_values)


#获得x,y和hovertext的值
x_values=list(sorted_dict_by_values.keys())
y_values=list(sorted_dict_by_values[key]['ratio'] for key in sorted_dict_by_values.keys())
hovertext_values=list(f"总数:{sorted_dict_by_values[key]['sum']}" for key in sorted_dict_by_values.keys())

#可视化;并且鼠标显示总人数标签
data=[{'type':'bar',
       'x':x_values,
       'y':y_values,
       'hovertext':hovertext_values
}]

mylayout={'title':'教育背景与收入超过50k统计',
          'xaxis':{'title':'教育背景',},
          'yaxis':{'title':'超过50k的人数/总人数'}
         }
fig={'data':data,'layout':mylayout}
offline.plot(fig,filename='adult.html')


在这里插入图片描述

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

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

相关文章

海外青云私有云产品种类介绍

青云(QingCloud)是一家领先的云计算服务提供商,其私有云产品系列在海外市场上也备受关注。以下是对海外青云私有云产品种类的科普介绍。 在海外市场中,青云的私有云产品以其高度的灵活性、可扩展性和安全性而著称。这些产品能够满足不同行业、不同规模企…

2024中国(重庆)航空航天暨无人机低空经济展览会

2024中国(重庆)航空航天暨无人机低空经济展览会 邀请函 组织机构 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 展会概括∶ 2024中国航空航天暨无人机低空经济展览会将于2024年8月23-25日在重庆…

bat xcopy 解析

echo off set source_folder"C:\path\to\source" set destination_folder"C:\path\to\destination" set exclude_file"C:\path\to\excluded_folders.txt"REM 创建目标文件夹(如果不存在) mkdir %destination_folder% 2>…

测评|喵都吃肥了,这篇主食冻干测评的推文终于完成了...VE、希喂、SC对比结果

想要为猫咪提供高质量的主食,主食冻干无疑是理想之选。主食冻干不仅肉含量高、易于吸收,而且富含多种普通猫粮难以提供的营养素,全面满足猫咪的微量元素需求。其营养价值与生骨肉喂养相媲美,同时避免了生骨肉可能带来的细菌超标问…

互联网盈利:APP广告变现的秘诀!

在数字化的今天,互联网已经成为了人们日常生活中不可或缺的一部分。它不仅改变了我们的生活方式,还创造了无数盈利的机会。其中,移动应用(App)广告变现是近年来备受瞩目的互联网盈利方式之一。接下来,我们将…

汉诺塔问题和爬楼梯(递归)

感谢大佬的光临各位,希望和大家一起进步,望得到你的三连,互三支持,一起进步 个人主页:LaNzikinh-CSDN博客 c语言基础_LaNzikinh篮子的博客-CSDN博客 文章目录 一.爬楼梯问题二.汉诺塔问题总结 一.爬楼梯问题 假设你正…

Shell的运行原理和Linux的权限

Shell的运行原理 Linux严格意义上说是一个操作系统,我们称之为“核心(kernel)”,但我们一般用户不能直接使用kernel,而是通过kernel的“外壳程序”,也就是所谓的Shell,来与kernel沟通。 Shell…

sql注入---sqli靶场

1.什么是SQL注入 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库 2.sql注入原理 攻击者注入一段包含注释符的SQL语…

SpringBoot整合Swagger,让开发更遍历

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ SpringBoot整合Swagger,让开发更遍…

Excel 将非分组列的数据移到同一行

例题描述和简单分析 有 Excel 数据如下所示: Account NameJoin DateOther ColumnsPackageAccount 12001/1/19DataMain PackageAccount 12001/1/19DataBolt OnAccount 12001/1/19DataAdd onAccount 22001/1/18DataMain PackageAccount 32001/1/17DataMain PackageA…

2024最新软件测试【测试理论+ Linux】面试题(内附答案)

一、测试理论 3.1 你们原来项目的测试流程是怎么样的? 我们的测试流程主要有三个阶段:需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的 SE 会把需求文档给我们自己先去了解一到两天这样,之后我们会有一个需求澄清会议, …

JDK 1.8 HashMap扩容机制

我们首先来看利用无参构造函数创建HashMap如何扩容。首先创建一个无参构造出来的hashmap HashMap hashMap new HashMap();该构造函数源码如下: public HashMap() {this.loadFactor DEFAULT_LOAD_FACTOR; // all other fields defaulted}此时,该构造函…

Shiro反序列化漏洞-Shiro550流程分析

Apache Shiro是一个开源框架,这个漏洞在2016就被披露了。Shiro框架使用广泛,漏洞影响范围广。 环境搭建 这里我使用的是IDEA 2023.3.5 环境下载 这里就不配图片了,具体操作可以搜索引擎 tomcat 8.5.76 下载地址: https://arc…

什么是抽样调查

抽样调查是政府统计工作和市场调查中普遍采用的方法,我国《统计法》中明确规定:搜集、整理统计资料,应当以周期性普查为基础,以经常性抽样调查为主体,综合运用全面调查、重点调查等方法,并充分利用行政记录…

ECMAScript 2024 新特性

ECMAScript 2024 新特性 ECMAScript 2024, the 15th edition, added facilities for resizing and transferring ArrayBuffers and SharedArrayBuffers; added a new RegExp /v flag for creating RegExps with more advanced features for working with sets of strings; and …

Peter算法小课堂—序列切割

讲序列切割之前,先来个铺垫 高手集训 题目描述: 课程表里有连续的n天可以供你选择,每天都有专题课程。其中第i天的专题趣味程度为h[i]。假设你选择了其中连续的若干天,从第l天到第r天。那么, 训练效果 h[l]*1 h[…

WS2812B是一个集控制电路与发光电路于一体的智能外控LED光源

产品概述 WS2812B是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和可编程定电流控制部分&a…

神经网络复习--数学相关基础知识

文章目录 矩阵范数卷积激活函数信息熵 矩阵 标量:一个标量就是一个单独的数向量:一个向量是一列数。这些数是有序排列的。通过次序中的索引,我们可以确定每个单独的数矩阵:矩阵是一个二维数组,其中的每个元素被两个索…

2023年上半年信息系统项目管理师——综合知识真题与答案解释(4)

2023年上半年信息系统项目管理师 ——综合知识真题与答案解释(4) 61、文档的规范化管理主要体现在()方面。 ①文档书写规范 ②文档质量级别 ③图表编号规则 ④文档目录编写标准 ⑤文档管理制度 ⑥文档安全标准 A.①②③④ B.②③…

STM32使用ESP01S连接阿里云物联网平台

一、ESP01S烧录MQTT固件准备 首先准备好烧录工具,可以从官网上进行下载。 MQTT固件官网网址:AT固件汇总 | 安信可科技 (ai-thinker.com) 进去后如下图界面,向下翻找找到MQTT固件(1471)下载固件即可。 烧录工具光网地…