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

数据来源

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 offlinefilename='/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.mzph.cn/bicheng/11501.shtml

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

相关文章

ubuntu server 22.04.4 系统安装详细教程

本教程使用vmware workstation 17创建虚拟机进行安装演示,安装方式和真机安装没有区别。 1、下载镜像 下载ubuntu server版本系统镜像,官网下载地址:https://cn.ubuntu.com/download/server/step1 注意:自己下载时需要确认是否是…

MySQL索引的存储结构

2.3.2. 索引存储结构 索引存储结构有堆表和索引组织表两种方式。 堆表和索引组织表有什么区别? 堆表: 数据和索引是分开存放的,索引是排序后的,但堆数据是无序的进行的都是随机访问,索引的叶子节点中存放的是数据在…

基于springboot + vue 实现的简易博客系统

项目效果图 登陆页面 文章列表 发表文章 用户管理 栏目管理 数据统计 后端技术栈后端主要采用了: 1.SpringBoot 2.SpringSecurity 3.MyBatis 4.部分接口遵循Restful风格 5.MySQL 前端技术栈前端主要采用了: 1.Vue 2.axios 3.Elemen…

每周一算法:传递闭包

题目描述 不等式排序 给定 n n n个变量和 m m m个不等式。其中 n n n小于等于 26 26 26,变量分别用前 n n n 的大写英文字母表示。 不等式之间具有传递性,即若 A > B A>B A>B 且 B > C B>C B>C,则 A > C A>C …

GPU prompt

提问: GPU是如何与CPU协调工作的? GPU也有缓存机制吗?有几层?速度差异是多少? GPU渲染流程有哪些阶段?他们的功能分别是什么? Early-Z技术是什么?发生在哪个阶段?这个…

Cocos 2048从创建到发布上线

二、审核通过之后上线流程 代码通过审核之后,会通过站内信和微信消息发送通知,在管理后台,点击提交发布,去备案

ensp简单ac+ap+sta无线配置和脚本

接入交换机与ap连线配置: interface E0/0/5 port link-type trunk port trunk pvid vlan 10 port trunk allow-pass vlan all配置AC的IP配置: [AC]Vlan 2 创建vlan 2 [AC]interface Vlanif 2 进入vlan 2 [AC-Vlanif2]ip address 192.168.80.3 24 设置一个IP地址…

File类~路径、创建文件对象

路径分为相对路径(不带盘符),绝对路径(带盘符) 路径是可以存在的,也可以是不存在的 创建文件对象的三个方法:

IDEA-SpringBoot项目启动类位置错误导致启动报错

文章目录 前言:本文为SpringBoot项目启动类位置错误导致启动报错解决方案 笔者在初学SpringBoot项目时遇到过因启动类位置错误导致项目启动报错现象,总结如下: SpringBoot启动发送请求后遇到如下错误: Postman界面信息&#xff1…

速了解及使用布隆过滤器

布隆过滤器 介绍 概念:是一种高效查询的数据结构 作用:判断某个元素是否在一个集合中。(但是会出现误判的情况) 实现原理 加入元素: 当一个元素需要加入到布隆过滤器中时,会使用一组哈希函数对该元素进…

个人模拟面试java2

文章目录 SQL如何进行优化数据库性能调优1. 性能评估2. 确定调优目标 3. 监控和分析4. 硬件和配置调优5. 数据库设计和模式优化6. 查询优化7. 并发控制8. 缓存策略9. 定期维护10. 监控和持续调优 Redis支持哪些数据类型?Redis如何实现持久化?如何解决Red…

☀️提高生产力:这10个Lambda表达式必须掌握!!!

1.使用Lambda表达式进行集合遍历 ❌ 未使用Lambda表达式: List list Arrays.aslist("apple", "banana", "orange"); for (String fruit : list) {System.out.println(fruit); }✅使用Lambda表达式: List list Arrays.aslist("apple&qu…

Dubbo为何放弃JDK SPI机制:一探究竟

引言 在当今的软件开发领域,随着微服务架构的普及和服务化治理的需要,Dubbo作为一款优秀的分布式服务框架,扮演着至关重要的角色。Dubbo以其强大的功能和易用性成为了众多企业和开发者的首选。然而,在Dubbo的设计中,我…

JVM调优:JVM运行时数据区详解

一、前言 Java运行时数据区域划分,Java虚拟机在执行Java程序时,将其所管理的内存划分为不同的数据区域,每个区域都有特定的用途和创建销毁的时间。 其中,有些区域在虚拟机进程启动时就存在,而有些区域则是随着用户线程…

CANape测量分析标定

CANape创建工程及标定 1 创建工程 1. 创建ape工程 打开CANape软件,创建新的ape工程 2.添加数据库文件 通过添加Device(确定信号源)的方式加载数据库文件 A2L:通过添加CCP、 XCP、VX1000的Device DBC:对总线报文检测 CAN CDD: 诊断功能 Diagnostic 如需导入MAP文件…

16. 封装全屏功能

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>封装全屏功能</title><style>#box {…

js通过视频链接获取视频时长

js通过视频链接获取视频时长 这个函数用提供的URL创建一个新的Video元素&#xff0c;并在loadedmetadata事件被触发时解析一个带有视频持续时间的Promise。它还处理可能发生的任何错误。 注意&#xff0c;Video元素的duration属性是以秒为单位的&#xff0c;因此如果需要&…

道格拉斯普克算法(DP)的点云轮廓线简化

1、背景介绍 由于点云无法精确刻画目标对象边缘信息&#xff0c;因此常规提取的边缘点直接相连所生成的轮廓线&#xff0c;锯齿现象显著&#xff0c;与真实情况相差甚远&#xff08;图b所示&#xff09;。 道格拉斯-普克&#xff08;Douglas-Peuker&#xff09;抽稀算法是用来对…

【数据库系统工程师】2024年5月考前最后冲刺指南

一、备考关键&#xff1a; 高效率的备考方式&#xff1a;多轮迭代学习 △ 基础阶段 △ 大面积撒网(60%) 略读&#xff0d;> 做题 &#xff0d;> 回顾 &#xff0d;> 精读 △ 积累阶段 △ 有针对性的突破(30%) 完成所有章节之后&#xff0c;进行真题测试&#x…

爬取深圳2024年链家二手房数据,共3000条数据(其他城市也可)

文章目录 专栏导读1.目标2.导入相关库3.获取每个二手房的链接4.获取每个链接中的相关数据5.保存数据6.数据展示 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN 数据分析领域优质创作者&#xff0c;专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫…