python每日可视化分析:从过去到现代数据分析的演进

news2024/9/27 9:22:12
分析目标

本文旨在探索数据分析发展历程中的关键时刻,包括重要人物的贡献和大事件的发生。通过对比不同年代的数据分析技术和方法,我们可以更好地理解数据分析如何成为今天决策制定不可或缺的一部分。

分析步骤
  1. 收集数据:搜集关于数据分析历史上重要人物和事件的信息。

  2. 数据与可视化:创建一组数据,展示不同年份全球数据量的增长,并通过可视化技术加入人物和大事件的标记。

  3. 分析改进前后的差异:对比分析人物贡献和大事件发生前后数据分析技术的变化。

数据与可视化

我们创建了一组数据,显示从1662年至2010年全球数据量的增长。重要的里程碑包括John Graunt的统计分析开始,Alan Turing的图灵机概念,Tim Berners-Lee的万维网发明,以及Hadley Wickham在数据分析工具方面的现代化努力。

通过Matplotlib库,我们将这些数据和事件以及相关人物的贡献呈现在一个时间线图上。这不仅展示了数据量的增长,也突出了数据分析历史上的重要时刻和人物。

改进前

这是每个人物对应的时间和主要的贡献,我们通过文字的方式进行描述,对于每个时间点、数据量、整体的变化感知不是很清晰,没有太多的体感,数据量较小也不知道具体是多少,对数据分析来说不是很友好的呈现方式

  1. John Graunt (1662): 被认为是统计学的创始人之一。此时期数据量非常小,主要依靠手工记录。

    • 数据量: 微乎其微

    • 大事件: 开始使用统计方法分析人口数据。

  2. Carl Friedrich Gauss (1801): 对统计理论做出了重要贡献,包括最小二乘法。

    • 数据量: 较小

    • 大事件: 统计学和概率理论的发展。

  3. Ronald A. Fisher (1912): 现代统计学的重要人物,提出方差分析等概念。

    • 数据量: 逐渐增长

    • 大事件: 统计学在科学研究中的应用扩展。

  4. Alan Turing (1936): 计算机科学的先驱,提出图灵机模型。

    • 数据量: 逐渐增长

    • 大事件: 计算机科学的诞生,数据处理能力得到提升。

  5. Tim Berners-Lee (1989): 万维网的发明者,极大地促进了数据的生成和共享。

    • 数据量: 显著增长

    • 大事件: 互联网时代的开始,数据量开始爆炸性增长。

  6. Jim Gray (2003): 数据库技术的先驱,对大数据处理做出了贡献。

    • 数据量: 巨大

    • 大事件: 数据库和大数据技术的发展。

  7. Geoffrey Hinton (2006): 深度学习和神经网络的领军人物。

    • 数据量: 极大

    • 大事件: 深度学习技术的突破,开启了AI时代。

  8. Hadley Wickham (2010): R语言的重要贡献者,简化了数据分析过程。

    • 数据量: 巨量

    • 大事件: 数据科学和统计计算的现代工具和方法的发展。

第一次改进

我们通过一个表格来展示数据分析领域的关键人物,数据量级和大事件,对同类项进行划分,能比较清晰的看出不同字段对应的事件和人物,数据量的情况等。但是对于数据分析来说我们需要对可视化有更高的要求

第二次改进

我们通过一个折线图把关键信息都描述在一个图里,不仅呈现了数据量的增长,还描绘了数据分析领域发展的脉络,包括人物直观的图像。这为我们提供了一个全面的视角,展现了数据分析是如何逐步成为现代社会的重要组成部分,包括哪些重点事件和人物的推动下演进。这里均通过python代码实现。

分析结论

从John Graunt的早期统计学应用,到Hadley Wickham对现代数据科学工具的贡献,数据分析领域经历了巨大的变革。随着全球数据量的爆炸式增长,数据分析的重要性也随之增加。历史上的人物和大事件不仅塑造了数据分析的方法和技术,也影响了我们如何理解和利用数据。未来,随着技术的不断进步,数据分析将继续发挥其在解决复杂问题和推动社会进步中的关键作用。

这篇文章通过对过去和现在的对比,展现了数据分析的发展历程和关键人物的重要性,为理解其对未来的潜在影响提供了不同的视角。

python代码(包括对人物图像的插入)

需要插入的人物头像欢迎关注 公众号 数据分析螺丝钉 回复关键词 python可视化 领取

import matplotlib.pyplot as pltfrom matplotlib.offsetbox import OffsetImage, AnnotationBboximport numpy as np# Define the data for the timelineyears = [1662, 1801, 1912, 1936, 1989, 2003,  2010]data_volumes = [0.0001, 0.0001, 0.0001, 0.0002, 0.01, 1, 2]  # in Zettabytespersons = ["John Graunt", "Carl Friedrich Gauss", "Ronald A. Fisher", "Alan Turing",            "Tim Berners-Lee", "Jim Gray", "Hadley Wickham"]milestones = [    "John Graunt \n Beginning of statistical analysis",     "Carl Friedrich Gauss \n Development of the least squares method",     "Ronald A. Fisher \n Introduction of variance analysis",     "Alan Turing \n Conceptualization of the Turing Machine",     "Tim Berners-Lee \n Invention of the World Wide Web",     "Jim Gray \n Advances in database technology",     "Hadley Wickham \n Modernization of data analysis tools"]# Custom offsets for each image in the format (x_offset, y_offset)offsets = {    "John Graunt": (1680,0.0005),    "Carl Friedrich Gauss": (1820, 0.0005),    "Ronald A. Fisher": (1920, 0.0005),    "Alan Turing": (1950, 0.001),    "Tim Berners-Lee": (1980, 0.05),    "Jim Gray": (2000, 10),    "Hadley Wickham": (2020, 10),    # Add more offsets for other people if needed}# Set up the figure and axisfig, ax = plt.subplots(figsize=(15, 8))# Plot the data volume over timeax.plot(years, data_volumes, '-o', color='blue')# Set the y-scale to logarithmic to accommodate the wide range of data volumesax.set_yscale('log')ax.set_xlabel('Year')ax.set_ylabel('Global Data Volume (Zettabytes)')ax.set_title('Global Data Volume and Major Contributors')# Insert images and labels for each person at their respective year with the correct data volumebase_image_path = '/xx/datapeople/'  # Replace with your own path# Function to add an imagedef add_image(ax, base_image_path, coord, person_name):    # Read the image    img = plt.imread(image_path)    # Get custom offset for the person    offset_x, offset_y = offsets.get(person_name, (0, 0))    # Create imagebox    imagebox = OffsetImage(img, zoom=0.15)    ab = AnnotationBbox(imagebox, coord, frameon=False, boxcoords="data",                        xybox=(offset_x, offset_y), box_alignment=(1, 1))    ax.add_artist(ab)# Insert images and labels for each personfor i, year in enumerate(years):    coord = (year, data_volumes[i])    person_name = persons[i]    image_path = f'{base_image_path}{person_name}.jpeg'  # Image names match the person's name    add_image(ax, image_path, coord, person_name)    # Add milestone annotations below each image    ax.annotate(milestones[i], xy=coord, xytext=(0, -100), textcoords='offset points',                ha='center', va='top', fontsize=9, arrowprops=dict(arrowstyle="->", color='black'))plt.show()

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

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

相关文章

【Redis】优惠券秒杀

全局唯一ID 全局唯一ID生成策略: UUIDRedis自增snowflake算法数据库自增 Redis自增ID策略:每天一个key,方便统计订单量ID构造是 时间戳 计数器 Component public class RedisIdWorker {// 2024的第一时刻private static final long BEGIN…

微服务(基础篇-001-介绍、Eureka)

目录 认识微服务(1) 服务架构演变(1.1) 单体架构(1.1.1) 分布式架构(1.1.2) 微服务(1.1.3) 微服务结构 微服务技术对比 企业需求 SpringCloud(1.2) …

[BIT]智慧社区综合管理云平台需求文档

智慧社区综合管理云平台需求文档 目录: 智慧社区综合管理云平台需求文档一、 项目前景和范围文档1.业务需求1.1 项目前景1.2 主要特性1.2.1 安全监控1.2.2 社区服务1.2.3 电子化档案 1.3 假设与依赖 2.项目范围2.1 功能实现2.2 验收标准2.3 可交付成果2.4 项目的除外责任2.5 制…

基于SpringBoot+Vue+Mybatis的408刷题小程序管理端

简介 原始数据:书目信息、章节信息、题目信息、系统菜单、系统角色、系统用户。 主要任务:系统主要采用spring boot作为后端框架,前端使用vueelementUI,为408刷题小程序提供一个方面的管理和维护的任务,主要功能包括…

centos glibc 升级导致系统崩溃

centos 7.9默认的glibc为2.17,因为要安装一些软件,需要升级到glibc 2.18,而从源码进行编译和安装,安装失败,导致系统崩溃。 系统崩溃首先想到的是利用启动盘进行救援,而利用centos 7.9的启动盘始终无法挂载…

AI:152- 利用深度学习进行手势识别与控制

本文收录于专栏:精通AI实战千例专栏合集 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮到大家。正在不断更新中~ 一. 利用深度学习进行手势识别与控制 …

jetcache 2级缓存模式实现批量清除

需求 希望能够实现清理指定对象缓存的方法,例如缓存了User表,当User表巨大时,通过id全量去清理不现实,耗费资源也巨大。因此需要能够支持清理指定本地和远程缓存的批量方法。 分析 查看jetcache生成的cache接口,并没…

nodejs+vue高校失物招领平台python-flask-django-php

时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,高校失物招领平台当然不能排除在外。高校失物招领平台是在实际应用和软件工程的开发原理之上,运用nodejs语言以及express框架进行开发…

如何在 Django 中使用 pyecharts

为项目新建一个目录,将其命名为django_pyecharts_demo, 在终端中切换到这个目录,并创建一个虚拟环境。 python -m venv django_pyecharts激活虚拟环境 django_pyecharts\Scripts\activate要停止使用虚拟环境,可执行命令 deactivate创建并激…

音视频领域首个,阿里云推出华为鸿蒙 HarmonyOS NEXT 版音视频 SDK

近日,阿里云在官网音视频终端 SDK 栏目发布适配 HarmonyOS NEXT 的操作文档和 SDK,官宣 MediaBox 音视频终端 SDK 全面适配 HarmonyOS NEXT。 此外,阿里云播放器 SDK 也在华为开发者联盟官网鸿蒙生态伙伴 SDK 专区同步上线,面向所…

Docker进阶:Docker-cpmpose 实现服务弹性伸缩

Docker进阶:Docker-cpmpose 实现服务弹性伸缩 一、Docker Compose基础概念1.1 Docker Compose简介1.2 Docker Compose文件结构 二、弹性伸缩的原理和实现步骤2.1 弹性伸缩原理2.2 实现步骤 三、技术实践案例3.1 场景描述3.2 配置Docker Compose文件3.3 使用 docker-…

6.4 Dropout正则化

1、Dropout Dropout是一种正则化技术,通过防止特征的协同适应,可用于减少神经网络中的过拟合。 Dropout的效果非常好,实现简单且不会降低网络速度,被广泛使用。 特征的协同适应指的是在训练模型时,共同训练的神经元…

Unity构建详解(3)——SBP的依赖计算

【前置知识】 先要搞清楚Asset和Object的关系,可以简单理解为一个Asset对应多个Object。 unity自定义的Asset也要有一个存储的标准,其采用的是YAML,我们看到的所有Unity自定义的Asset格式,例如.prefab(预制体&#x…

基于Google云原生工程师的kubernetes最佳实践(三)

目录 三、集群管理 利用node affinity、taint等机制管理node 通过pod affinity/anti-affinity机制将pod分配到合适的node Node分级管理 从Qos角度将Pod分级 用namespace隔离不同的环境和用户 配置RBAC权限控制 1. 遵循最小权限原则 2. 使用 Role 和 ClusterRole 分离权…

计算机服务器中了faust勒索病毒怎么办,faust勒索病毒解密工具流程

网络是一把利剑,可以方便企业开展各项工作业务,为企业提供极大的便利,但随着网络技术的不断发展与应用,网络数据安全威胁也在不断增加,给企业的正常生产运营带来了极大困扰,近日,云天数据恢复中…

PointerLockControls 是 Three.js 中用于处理鼠标锁定状态下的相机控制的类。它允许用户通过鼠标移动来控制相机的旋转方向。

demo案例 PointerLockControls 是 Three.js 中用于处理鼠标锁定状态下的相机控制的类。它允许用户通过鼠标移动来控制相机的旋转方向。下面是它的详细讲解: 构造函数: PointerLockControls(object: Camera, domElement?: HTMLElement)object:THREE.Ca…

Linux 系统 快速卸载docker

(卸载前一定要做好相关数据的备份) 卸载: 第一种卸载方法 1、查询docker安装过的包: yum list installed | grep docker 2、删除安装包: yum remove docker-ce.x86_64 ddocker-ce-cli.x86_64 -y 3、删除镜像/容器等 rm -rf /var/lib/dock…

力扣面试150 x 的平方根 二分 换底法 牛顿迭代法 一题多解

Problem: 69. x 的平方根 思路 👨‍🏫 参考题解 💖 袖珍计算器算法 class Solution {public int mySqrt(int x){if (x 0)return 0; // Math.exp(3):e的三次方int ans (int) Math.exp(0.5 * Math.log(x));return (long) (an…

react native 键盘事件

在做修改密码功能是发现他的键盘第一次调起之后然后收起键盘焦点不会消失而且键盘也不会再调起来了 我门线引入需要的组件 import { StyleSheet, View, TextInput, Keyboard, TouchableWithoutFeedback, } from react-native; import React, {useEffect, useState, useRef} fr…

蓝桥杯真题:幸运数字

这道题可以用 integer.string()求每个进制的数,但这里要每一位数相加,所以用这个方法会比较麻烦,如下 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scan new Sc…