【数据可视化】—大屏数据可视化展示

news2025/1/11 11:46:30

【数据可视化】—大屏数据可视化展示

一、数据可视化

数据可视化的目的:借助于图形化工具,清晰有效的传达与沟通信息。

数据可视化可以把数据从冰冷的数字转换成图形,揭示蕴含在数据中的规律和道理。

在这里插入图片描述
在这里插入图片描述

二、 免费数据可视化库

Echarts

百度创建的这个库对于 Web 的数据可视化非常有用。它也提供英文版本,适用于大数据集。它还支持 SVG 和 Canvas 渲染。

适用于:所有环境

在这里插入图片描述

Highcharts

Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。HighCharts支持的图表类型有曲线图、区域图、柱状图、饼状图、散状点图和综合图表。
在这里插入图片描述
D3.js、AntV……

三、Echarts使用五步曲

在这里插入图片描述

<style>
        .box{
            width: 500px;
            height: 500px;
            background-color: pink;
        }
    </style>
</head>
<body>
    <div class="box">

    </div>
    <script src="./js//echarts.min.js"></script>
    <script>
        //初始化
        var myChart=echarts.init(document.querySelector(".box"))
 // 指定图表的配置项和数据
 var option = {
        title: {
          text: 'ECharts 入门示例'
        },
        tooltip: {},
        legend: {
          data: ['销量']
        },
        xAxis: {
          data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
        },
        yAxis: {},
        series: [
          {
            name: '销量',
            type: 'bar',
            data: [5, 20, 36, 10, 10, 20]
          }
        ]
      };

      // 使用刚才指定的配置项和数据显示图表。
      myChart.setOption(option);

    </script>

在这里插入图片描述

四、项目实战

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>数据可视化</title>
   
    <link rel="stylesheet" href="./css/index.css" />

  </head>
  <body>
    <!-- header -->
    <header>
      <h1>数据可视化-Echarts</h1>
      <div class="showTime"></div>
      <script>
        function time() {
          var vWeek, vWeek_s, vDay;
          vWeek = [
            "星期天",
            "星期一",
            "星期二",
            "星期三",
            "星期四",
            "星期五",
            "星期六",
          ];
          var date = new Date();
          year = date.getFullYear();
          month = date.getMonth() + 1;
          day = date.getDate();
          hours = date.getHours();
          minutes = date.getMinutes();
          seconds = date.getSeconds();
          vWeek_s = date.getDay();
          document.querySelector(".showTime").innerHTML =
            year +
            "年" +
            month +
            "月" +
            day +
            "日" +
            "\t" +
            hours +
            ":" +
            minutes +
            ":" +
            seconds +
            "\t" +
            vWeek[vWeek_s];
        }
        setInterval("time()", 1000);
      </script>
    </header>

    <!-- 主体部分 -->
    <section class="mainbox">
        <div class="column">
          <div class="panel bar">
            <h2>
              柱状图-就业行业 
             
            </h2>
            <div class="chart"></div>
            <div class="panel-footer"></div>
          </div>
          <div class="panel line">
            <h2>折线图-人员变化</h2>
            <div class="chart"></div>
            <div class="panel-footer"></div>
          </div>
          <div class="panel pie">
            <h2>饼形图-年龄分布</h2>
            <div class="chart"></div>
            <div class="panel-footer"></div>
          </div>
        </div>
        <div class="column">
          <div class="no">
            <div class="no-hd">
              <ul>
                <li>125811</li>
                <li>104563</li>
              </ul>
            </div>
            <div class="no-bd">
              <ul>
                <li>前端需求人数</li>
                <li>市场供应人数</li>
              </ul>
            </div>
          </div>
          <div class="map">
            <div class="chart"></div>
            <div class="map1"></div>
            <div class="map2"></div>
            <div class="map3"></div>
          </div>
        </div>
        <div class="column">
          <div class="panel bar1">
            <h2>柱状图-技能掌握</h2>
            <div class="chart"></div>
            <div class="panel-footer"></div>
          </div>
          <div class="panel line1">
            <h2>折线图-播放量</h2>
            <div class="chart"></div>
            <div class="panel-footer"></div>
          </div>
          <div class="panel pie1">
            <h2>饼形图-地区分布</h2>
            <div class="chart"></div>
            <div class="panel-footer"></div>
          </div>
        </div>
      </section>
      <script src="js/flexible.js"></script>
      <script src="js/jquery.js"></script>
      <script src="js/echarts.min.js"></script>
      <script src="js/index.js"></script>
      <script src="js/china.js"></script>
      <script src="js/myMap.js"></script>
    </body>
  </html>
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }
  li {
    list-style: none;
  }
  @font-face {
    font-family: electronicFont;
    src: url(../font/DS-DIGIT.TTF);
  }
  body {
    font-family: Arial, Helvetica, sans-serif;
    margin: 0;
    padding: 0;
    /*  背景图定位 / 背景图尺寸  cover 完全铺满容器  contain 完整显示在容器内 */
    background: url(../images/bg.jpg) no-repeat #000;
    background-size: cover;
    /* 行高是字体1.15倍 */
    line-height: 1.15;
  }
  header {
    position: relative;
    height: 1.25rem;
    background: url(../images/head_bg.png) no-repeat top center;
    background-size: 100% 100%;
  }
  header h1 {
    font-size: 0.475rem;
    color: #fff;
    text-align: center;
    line-height: 1rem;
  }
  header .showTime {
    position: absolute;
    top: 0;
    right: 0.375rem;
    line-height: 0.9375rem;
    font-size: 0.25rem;
    color: rgba(255, 255, 255, 0.7);
  }
  .mainbox {
    min-width: 1024px;
    max-width: 1920px;
    padding: 0.125rem 0.125rem 0;
    display: flex;
  }
  .mainbox .column {
    flex: 3;
  }
  .mainbox .column:nth-child(2) {
    flex: 5;
    margin: 0 0.125rem 0.1875rem;
    overflow: hidden;
  }
  .panel {
    position: relative;
    height: 3.875rem;
    border: 1px solid rgba(25, 186, 139, 0.17);
    background: rgba(255, 255, 255, 0.04) url(../images/line\(1\).png);
    padding: 0 0.1875rem 0.5rem;
    margin-bottom: 0.1875rem;
  }
  .panel::before {
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    width: 10px;
    height: 10px;
    border-top: 2px solid #02a6b5;
    border-left: 2px solid #02a6b5;
  }
  .panel::after {
    position: absolute;
    top: 0;
    right: 0;
    content: "";
    width: 10px;
    height: 10px;
    border-top: 2px solid #02a6b5;
    border-right: 2px solid #02a6b5;
  }
  .panel .panel-footer {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
  }
  .panel .panel-footer::before {
    position: absolute;
    bottom: 0;
    left: 0;
    content: "";
    width: 10px;
    height: 10px;
    border-bottom: 2px solid #02a6b5;
    border-left: 2px solid #02a6b5;
  }
  .panel .panel-footer::after {
    position: absolute;
    bottom: 0;
    right: 0;
    content: "";
    width: 10px;
    height: 10px;
    border-bottom: 2px solid #02a6b5;
    border-right: 2px solid #02a6b5;
  }
  .panel h2 {
    height: 0.6rem;
    line-height: 0.6rem;
    text-align: center;
    color: #fff;
    font-size: 0.25rem;
    font-weight: 400;
  }
  .panel h2 a {
    margin: 0 0.1875rem;
    color: #fff;
    text-decoration: underline;
  }
  .panel .chart {
    height: 3rem;
  }
  .no {
    background: rgba(101, 132, 226, 0.1);
    padding: 0.1875rem;
  }
  .no .no-hd {
    position: relative;
    border: 1px solid rgba(25, 186, 139, 0.17);
  }
  .no .no-hd::before {
    content: "";
    position: absolute;
    width: 30px;
    height: 10px;
    border-top: 2px solid #02a6b5;
    border-left: 2px solid #02a6b5;
    top: 0;
    left: 0;
  }
  .no .no-hd::after {
    content: "";
    position: absolute;
    width: 30px;
    height: 10px;
    border-bottom: 2px solid #02a6b5;
    border-right: 2px solid #02a6b5;
    right: 0;
    bottom: 0;
  }
  .no .no-hd ul {
    display: flex;
  }
  .no .no-hd ul li {
    position: relative;
    flex: 1;
    text-align: center;
    height: 1rem;
    line-height: 1rem;
    font-size: 0.875rem;
    color: #ffeb7b;
    padding: 0.05rem 0;
    font-family: electronicFont;
    font-weight: bold;
  }
  .no .no-hd ul li:first-child::after {
    content: "";
    position: absolute;
    height: 50%;
    width: 1px;
    background: rgba(255, 255, 255, 0.2);
    right: 0;
    top: 25%;
  }
  .no .no-bd ul {
    display: flex;
  }
  .no .no-bd ul li {
    flex: 1;
    height: 0.5rem;
    line-height: 0.5rem;
    text-align: center;
    font-size: 0.225rem;
    color: rgba(255, 255, 255, 0.7);
    padding-top: 0.125rem;
  }
  .map {
    position: relative;
    height: 10.125rem;
  }
  .map .chart {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 5;
    height: 10.125rem;
    width: 100%;
  }
  .map .map1,
  .map .map2,
  .map .map3 {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 6.475rem;
    height: 6.475rem;
    background: url(../images/map.png) no-repeat;
    background-size: 100% 100%;
    opacity: 0.3;
  }
  .map .map2 {
    width: 8.0375rem;
    height: 8.0375rem;
    background-image: url(../images/lbx.png);
    opacity: 0.6;
    animation: rotate 15s linear infinite;
    z-index: 2;
  }
  .map .map3 {
    width: 7.075rem;
    height: 7.075rem;
    background-image: url(../images/jt.png);
    animation: rotate1 10s linear infinite;
  }
  @keyframes rotate {
    from {
      transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
      transform: translate(-50%, -50%) rotate(360deg);
    }
  }
  @keyframes rotate1 {
    from {
      transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
      transform: translate(-50%, -50%) rotate(-360deg);
    }
  }
  @media screen and (max-width: 1024px) {
    html {
      font-size: 42px !important;
    }
  }
  @media screen and (min-width: 1920) {
    html {
      font-size: 80px !important;
    }
  }
  

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

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

相关文章

7-k8s-helm管理

文章目录 一、为什么需要Helm二、Helm相关概念介绍三、Helm安装四、Helm指令介绍五、Helm创建tomcat六、Helm创建tomcat其他方式七、Helm创建redis 一、为什么需要Helm k8s部署&#xff1a;k8s平台部署的服务都是由资源文件描述组成&#xff0c;传统的k8s部署应用需要手工编排…

过拟合与过拟合的经典例子

本站原创文章&#xff0c;转载请说明来自 《老饼讲解-机器学习》 ml.bbbdata.com 过拟合是机器学习中最常遇到的问题&#xff0c;本文解析什么叫过拟合 01. 什么是过拟合 本节通过概念解析与可视化例子&#xff0c;讲述什么是过拟合 什么是过拟合 过拟合是指在由于过度拟…

16 - 多线程调优(下):如何优化多线程上下文切换?

通过上一讲的讲解&#xff0c;相信你对上下文切换已经有了一定的了解了。如果是单个线程&#xff0c;在 CPU 调用之后&#xff0c;那么它基本上是不会被调度出去的。如果可运行的线程数远大于 CPU 数量&#xff0c;那么操作系统最终会将某个正在运行的线程调度出来&#xff0c;…

4.3 划分子网和构造超网

思维导图&#xff1a; 4.3.1 划分子网 **4.3 划分子网和构造超网笔记&#xff1a;** --- **4.3.1 划分子网** **1. 两级IP地址到三级IP地址的转变&#xff1a;** **关键点&#xff1a;** - **问题背景&#xff1a;** 早期的ARPANET对IP地址的设计存在不足&#xff1a; 1…

python 之f-strings 来格式化字符串

文章目录 当使用 f-strings 来格式化字符串时&#xff0c;可以在字符串中嵌入变量的值以及其他表达式的结果。以下是一些示例&#xff1a; 基本用法&#xff1a; name "Alice" age 30print(f"My name is {name} and I am {age} years old.")输出&#…

树莓派和arduino的恩恩怨怨

一、负责与树莓派互动的putty的会话经常断&#xff0c;不爽&#xff1a; 参考&#xff1a;【SSH】SSH自动断开连接的原因和解决办法|SSH保持长连接方法_ssh连上几秒就断开了_bandaoyu的博客-CSDN博客 用nano 1、修改 /etc/profile中改MOUT的值&#xff1a;export TMOUT0 ec…

Linux常见的指令合集

Linux指令合集 认识linuxlinux基础指令1.pwd 命令2. ls 命令3.cd 命令4. man 命令5. grep 命令6. ps 命令7. kill 命令8. netstat 命令9. date 查看当前系统时间10. echo 打印选项 -e linux文件操作指令1. mkdir 命令2. rmdir 命令3. touch 命令4. rm 命令5. mv 命令6. cp 命令…

【文件IO】文件系统的操作 流对象 字节流(Reader/Writer)和字符流 (InputStream/OutputStream)的用法

目录 1.文件系统的操作 (File类) 2.文件内容的读写 (Stream流对象) 2.1 字节流 2.2 字符流 2.3 如何判断输入输出&#xff1f; 2.4 reader读操作 (字符流) 2.5 文件描述符表 2.6 Writer写操作 (字符流) 2.7 InputStream (字节流) 2.8 OutputStream (字节流) 2.9 字节…

使用html2canvas将html转pdf,由于table表的水平和竖直有滚动条导致显示不全(或者有空白)

结果&#xff1a; 业务&#xff1a;将页面右侧的table打印成想要的格式的pdf&#xff0c;首先遇到的问题是table表上下左右都有滚轮而html2canvas相当于屏幕截图&#xff0c;那滚动区域如何显示出来是个问题&#xff1f; gif有点模糊&#xff0c;但是大致功能可以看出 可复制…

基于双级阈值及过零率的语音激活检测(VAD)

语音激活检测&#xff08;Voice Activity Detection, VAD&#xff09;:也称为端点检测&#xff0c;目的就是要找到音频信号的开始和结束位置。 时域方法&#xff1a; 音量&#xff1a;只用音量来进行端点检测&#xff0c;是最简单的方法&#xff0c;但是会对清音造成误判。音…

C#,数值计算——分类与推理Gaumixmod的计算方法与源程序

1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Gaumixmod { private int nn { get; set; } private int kk { get; set; } private int mm { get; set; } private double…

力扣第17题 电话号码的字母组合 c++ 回溯 经典提升题

题目 17. 电话号码的字母组合 中等 相关标签 哈希表 字符串 回溯 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。…

Elasticsearch系列组件:Logstash强大的日志管理和数据分析工具

Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎&#xff0c;设计用于云计算环境中&#xff0c;能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性&#xff0c;可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个…

sqlserver系统存储过程添加用户学习

sqlserver有一个系统存储过程sp_adduser&#xff1b;从名字看是添加用户的&#xff1b;操作一下&#xff0c; 从错误提示看还需要先添加一个登录名&#xff0c;再执行一个系统过程sp_addlogin看一下&#xff0c; 执行完之后看一下&#xff0c;安全性-登录名下面有了rabbit&…

【ARM Coresight Debug 系列 -- Linux 断点 BRK 中断使用详细介绍】

文章目录 1.1 ARM BRK 指令1.2 BRK 立即数宏定义介绍1.3 断点异常处理流程1.3.1 el1_sync_handler1.3.2 el1_dbg 跟踪 1.4 debug 异常处理函数注册1.4.1 brk 处理函数的注册 1.1 ARM BRK 指令 ARMv8 架构的 BRK 指令是用于生成一个软件断点的。当处理器执行到 BRK 指令时&…

电脑办公助手之桌面便签,助力高效率办公

在现代办公的快节奏中&#xff0c;大家有应接不暇的工作&#xff0c;每天面对着复杂的工作任务&#xff0c;总感觉时间不够用&#xff0c;而且工作无厘头。对于这种状态&#xff0c;大家可以选择在电脑上安装一款好用的办公便签软件来辅助日常办公。 敬业签是一款专为办公人士…

android--屏幕适配

基础概念 像素密度 dpi &#xff08; √宽^2高^2 &#xff09; / 屏幕大小 手机分辨率 1080 * 1920 1080代表宽 1920代表高 单位为px像素 屏幕大小为英寸 标准的像素密度 mdpi 160dpi dp 密度无关像素 dp与px的转换 density (dpi / 16…

python 之enumerate()函数

文章目录 enumerate() 是 Python 中的一个内置函数&#xff0c;它用于在遍历可迭代对象&#xff08;如列表、元组、字符串等&#xff09;时同时获取每个元素的索引和值。这个函数非常有用&#xff0c;因为它允许您在迭代过程中轻松地访问元素的索引&#xff0c;而不需要手动维护…

基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持自定义业务表单流程(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 之前讲到了流程保存的时候还要看是否是自定义业务流程应用类型&#xff0c;若是保存的时候不再检查是否有关…

常见三维建模软件有哪些?各自的特点是什么?

常见的三维建模软件包括以下这些&#xff1a; 1. 3DS Max 3D Studio Max&#xff0c;简称3DS MAX&#xff0c;是当今世界上销售量最大的三维建模、动画及渲染软件。它的应用范围广泛&#xff0c;包括计算机游戏中的动画制作、影视片的特效制作等。3DS MAX的操作相对容易&#…