当前位置: 首页 > news >正文

基于豆瓣电影TOP250的可视化设计

本文要完成的目的,实现豆瓣电影TOP250的可视化

思路

讲解思路,采用倒推的方式,

  • 首先确定可视化图表,也就是最终的效果。
  • 这样就能确定需要那些基础数据
  • 根据需要的数据进行按需爬取存储。

豆瓣电影Top250的可视化分析

本篇文章完成前两步。可视化图表设计 和 模拟数据。

可视化设计

image-20240624140308517

柱状图:

【豆瓣电影TOP250】评价人数最多的电影top10

  • 统计对象:电影评分TOP600
  • 统计目的:豆瓣电影TOP250
  • X轴数据:电影评价人数
  • Y轴数据:电影名

【豆瓣电影TOP250】年份最多的电影数量top10

  • 统计对象:电影评分TOP600的电影
  • 统计目的:年份最多的电影数量top10
  • X轴数据:电影数量值
  • Y轴数据:电影年份值

折线图

【豆瓣电影TOP250】每年高分电影产量趋势

  • 统计对象:豆瓣电影TOP250
  • 统计目的:每年高分电影产量趋势
  • X轴数据: 电影年份
  • Y轴数据: 当年电影数量

饼图

豆瓣电影TOP250各类型电影占比

  • 统计对象:豆瓣电影TOP250
  • 统计目的:展示不同类型电影在评分TOP600中的比例
  • 图表数据:各类型电影的数量

评价人数最多的电影top10

模拟数据

    // 假设这是获取到的豆瓣电影TOP250评价人数最多的电影TOP10的数据var movieData = [// 电影名, 评价人数["肖申克的救赎", 1000000],["霸王别姬", 950000],["阿甘正传", 900000],["这个杀手不太冷", Math.floor(Math.random() * 800000) + 100000], // 随机生成100000到900000的评价人数["千与千寻", Math.floor(Math.random() * 800000) + 100000],["泰坦尼克号", Math.floor(Math.random() * 800000) + 100000],["盗梦空间", Math.floor(Math.random() * 800000) + 100000],["星际穿越", Math.floor(Math.random() * 800000) + 100000],["楚门的世界", Math.floor(Math.random() * 800000) + 100000],["三傻大闹宝莱坞", Math.floor(Math.random() * 800000) + 100000],["忠犬八公的故事", Math.floor(Math.random() * 800000) + 100000]];// 确保评价人数是降序排列movieData.sort((a, b) => b[1] - a[1]);// 只保留评价人数最多的前10部电影movieData = movieData.slice(0, 10);

image-20240624140549065

年份最多的电影数量top10

模拟数据

 	// 模拟豆瓣电影TOP250的电影年份和对应的数量var simulatedData = [];for (let i = 1990; i <= 2020; i++) { // 假设我们只考虑1990年到2020年的电影let count = Math.floor(Math.random() * 50) + 1; // 随机生成1到50部电影的数量simulatedData.push([i, count]);}// 按照电影数量进行降序排序,获取年份最多的电影数量top10simulatedData.sort((a, b) => a[1] - b[1]);simulatedData = simulatedData.slice(0, 10);// 提取X轴和Y轴的数据var xAxisData = simulatedData.map(item => item[1]);var yAxisData = simulatedData.map(item => item[0]);

image-20240624140735448

每年高分电影产量趋势

模拟数据

	// 模拟豆瓣电影TOP250每年高分电影的产量var yearData = []; // 存储年份var productionData = []; // 存储每年高分电影的产量for (let i = 1990; i <= 2020; i++) {// 随机生成1到50部电影的数量,模拟每年高分电影的产量let count = Math.floor(Math.random() * 50) + 1;yearData.push(i); // 添加年份到X轴数据productionData.push(count); // 添加电影产量到Y轴数据}

image-20240624140923496

各类型电影占比

模拟数据

// 定义电影类型列表var movieGenres = ["剧情", "喜剧", "动作", "爱情", "科幻", "动画", "悬疑", "惊悚", "恐怖","纪录片", "短片", "情色", "音乐", "歌舞", "家庭", "儿童", "传记", "历史","战争", "犯罪", "西部", "奇幻", "冒险", "灾难", "武侠", "古装", "运动","黑色电影"];// 根据类型列表生成模拟数据var pieChartData = movieGenres.map(function(genre) {// 随机生成每种类型的电影数量,这里假设数量在50到500之间var value = Math.floor(Math.random() * 451) + 50;return {value: value,name: genre};});

image-20240624140916700

完整代码

点我下载:echarts实现豆瓣Top250可视化【四个图表-完美融合UI搭配设计和模拟数据】.rar

相关文章:

基于豆瓣电影TOP250的可视化设计

本文要完成的目的&#xff0c;实现豆瓣电影TOP250的可视化 思路 讲解思路&#xff0c;采用倒推的方式&#xff0c; 首先确定可视化图表&#xff0c;也就是最终的效果。这样就能确定需要那些基础数据根据需要的数据进行按需爬取存储。 本篇文章完成前两步。可视化图表设计 和 …...

YOLOv8中的C2f模块

文章目录 一、结构概述二、模块功能 一、结构概述 C2f块:首先由一个卷积块(Conv)组成&#xff0c;该卷积块接收输入特征图并生成中间特征图特征图拆分:生成的中间特征图被拆分成两部分&#xff0c;一部分直接传递到最终的Concat块&#xff0c;另一部分传递到多个Botleneck块进…...

ESP32 双线汽车接口 (TWAI)

一&#xff1a;TWAI概述 双线汽车接口 (TWAI) 是一种适用于汽车和工业应用的实时串行通信协议。它兼容 ISO11898-1 经典帧&#xff08;CAN2.0&#xff09;&#xff0c;因此可以支持标准帧格式&#xff08;11 位 ID&#xff09;和扩展帧格式&#xff08;29 位 ID&#x…...

docker-compose离线安装harbor

1、下载harbor goharbor下载&#xff1a;Releases goharbor/harbor GitHub harbor-offline-installer-v2.11.0.tgz 2、解压 tar -xvf harbor-offline-installer-v2.11.0.tgz 3、创建一个卷目录&#xff0c;并复制一份配置文件 cd harbor; mkdir data;cp harbor.yml.tmp…...

服务器“雪崩”的常见原因和解决方法 (C++)

在C服务器编程中&#xff0c;"雪崩"现象指的是服务器在高并发请求的情况下&#xff0c;由于资源&#xff08;如线程、文件描述符、内存等&#xff09;耗尽或锁争用等问题&#xff0c;导致服务器性能急剧下降&#xff0c;甚至完全失去响应的情况。这种现象会连带影响其…...

详解ES6中的类、对象和类的继承

在ES6&#xff08;ECMAScript 2015&#xff09;之前&#xff0c;JavaScript 并没有像其他面向对象的编程语言那样的类&#xff08;class&#xff09;的概念。相反&#xff0c;它使用了一种基于原型的继承模型来实现面向对象编程。然而&#xff0c;这种模型对于许多开发者来说可…...

游戏遇到攻击有什么办法能解决?

随着网络技术的飞速发展&#xff0c;游戏行业在迎来繁荣的同时&#xff0c;也面临着日益严峻的网络威胁。黑客攻击、数据泄露、DDoS攻击等安全事件频发&#xff0c;给游戏服务器带来了极大的挑战。面对愈演愈烈的网络威胁&#xff0c;寻找一个能解决游戏行业攻击问题的安全解决…...

【LLM】GLM系列模型要点

note 文章目录 noteGLM一、数据层面1. 预训练数据 二、GLM4模型层面三、GLM-4 All Tools四、GLM的其他技术Reference GLM Paper&#xff1a;https://arxiv.org/abs/2406.12793 GitHub&#xff1a;https://github.com/THUDM HF&#xff1a;https://huggingface.co/THUDM 经过…...

安卓开发,获取本机手机号

用免费云服务器&#xff0c;三丰云记录安卓开发过程 以下是使用 Android 开发获取本机手机号的示例代码&#xff08;需要相关权限&#xff09;&#xff1a; java 复制 import android.content.Context; import android.content.pm.PackageManager; import android.os.Build; i…...

linux学习week1

linux学习 一.介绍 1.概述 linux的读法不下10种 linux是一个开源的操作系统&#xff0c;操作系统包括mac、windows、安卓等 linux的开发版&#xff1a;Ubuntu&#xff08;乌班图&#xff09;、RedHat&#xff08;红帽&#xff09;、CentOS linux的应用&#xff1a;linux在服…...

【React篇】父组件渲染时避免重复渲染子组件的3种处理方法

在 React 中&#xff0c;父组件渲染时要避免重复渲染子组件&#xff0c;可以使用以下方法&#xff1a; 使用 React.memo&#xff08;仅适用于函数式组件&#xff09;或 PureComponent&#xff08;适用于类组件&#xff09;&#xff1a; 这些方法可以帮助你创建在接收到新的 pr…...

深度神经网络——决策树的实现与剪枝

概述 决策树 是一种有用的机器学习算法&#xff0c;用于回归和分类任务。 “决策树”这个名字来源于这样一个事实&#xff1a;算法不断地将数据集划分为越来越小的部分&#xff0c;直到数据被划分为单个实例&#xff0c;然后对实例进行分类。如果您要可视化算法的结果&#xf…...

IOPaint前后端框架

IOPaint 前后端框架 IOPaint 是一个图像修复工具&#xff0c;使用了先进的AI模型进行图像编辑。以下是其前后端所使用的框架&#xff1a; 前端框架 IOPaint 的前端使用了 Node.js 和 npm 进行依赖管理和构建。具体步骤如下&#xff1a; 克隆仓库并进入 web_app 目录&#x…...

【Linux】进程间通信_2

文章目录 七、进程间通信1. 进程间通信分类管道 未完待续 七、进程间通信 1. 进程间通信分类 管道 管道的四种情况&#xff1a; ①管道内部没有数据&#xff0c;并且具有写端的进程没有关闭写端&#xff0c;读端就要阻塞等待&#xff0c;知道管道pipe内部有数据。 ②管道内部…...

Linux基础 - 常用命令

目录 零. 简介 一 . 常见 Ubuntu 命令 二. apt-get 下载 三. 网络命令 四. 常用命令的总结 零. 简介 在 Ubuntu 中&#xff0c;命令是用于与操作系统进行交互和执行各种操作的指令。通过在终端中输入命令&#xff0c;可以完成文件管理、系统配置、软件安装、进程管理等各种…...

轻松两步,借助向量数据库 VectorDB 与千帆 Appbuilder 构建个性化本地问答知识库

在我们日常的工作和生活中&#xff0c;经常会遇到需要快速获取和管理大量信息的情况。无论是解答客户的问题&#xff0c;还是整理公司内部的资料&#xff0c;一个高效的知识库系统都能帮我们省下大量时间和精力。 为了帮助大家快速构建 RAG 应用&#xff0c;我们之前发布了一个…...

ONLYOFFICE 桌面编辑器 8.1

ONLYOFFICE 桌面编辑器 8.1 ONLYOFFICE 简介一、轻松编辑器 PDF 文件二、用幻灯片版式快速修改幻灯片三、无缝切换文档编辑、审阅和查看模式四、**改进从右至左语言的支持 & 新的本地化选项**五、隐藏“连接到云”板块六、在演示文稿中播放视频和音频文件七、版本 8.1&…...

idea中的git在clone文件提示 filename too long

一 解决版本 1.1 问题描述以及解决办法 当在Windows系统下使用Git时出现“filename too long”错误&#xff1a; git config --system core.longpaths true...

C++ 数组介绍

1. 数组是什么&#xff1f; 在C中&#xff0c;数组是一种基本的数据结构&#xff0c;它允许我们存储固定大小的相同类型元素的集合。每个元素在数组中都有一个唯一的索引&#xff0c;从0开始。 2. 数组的声明与初始化 2.1 声明数组 声明数组时&#xff0c;需要指定数组的类…...

思维导图MindManager2024最新版,让你的思维飞起来!

亲爱的朋友们&#xff0c;今天我要跟大家分享一款我近期深度使用并彻底被种草的神器——MindManager2024最新版本的思维导图软件。作为一位对效率和创意有着极高追求的内容创作者&#xff0c;我几乎尝试过市面上所有的思维导图工具&#xff0c;而MindManager2024无疑是其中的佼…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...