【echart】数据可视化

什么是数据可视化?

数据可视化主要目的:借助于图形化手段,清晰有效地传达与沟通信息。

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

如何绘制?

echarts 图表的绘制,大体分为三步:

  • 1.根据 DOM 实例,通过 echarts.init 方法,生成 echarts 实例
  • 2.构建 options 配置对象,整个 echarts 的样式,皆由该对象决定
  • 3.最后通过 实例.setOption 方法,设置配置对象

绘制横向柱状图

<template>
  <p style="margin: 20px 20px 0;">【大区分布图】</p>
  <div ref="target" style="width: 600px; height: 400px"></div>
</template>
<script setup>
import { defineProps, onMounted ,ref} from "vue";
import * as echarts from "echarts";
import { BarChart } from "echarts/charts";
const props = defineProps({
  data: {
    type: Object,
    required: true,
  },
});
console.log(props.data);
let myChart = null;
const target = ref(null)

// 2、构建option对象
var option = {
  // x轴
  xAxis: {
    show:false,
    type: "value",
    max:function(value){
      return parseInt(value.max *1.2)
    }
  },
  // y轴
  yAxis: {
    type: "category",
    data:props.data.map((item)=>{
      return item.name
    }),
    inverse:true,
    axisLine:{
      show:false
    },
    axisTick:{
      show:false
    },
    axisLabel:{
      color:'#9eb1c8'
    }
  },
  // 图表绘制位置
  grid:{
    top:10,
    right:20,
    left:20,
    containLabel:true
  },
  // 核心配置
  series: [
    {
      type: "bar",
      data:props.data.map((item)=>({
        name:item.name,
        value:item.value
      })),
      showBackground:true,
      backgroundStyle:{
        color:'rgba(180,180,180,0.2)'
      },
      itemStyle:{
        color:'#5D98CE',
        barBorderRadius:5,
        shadowColor:'rgba(0,0,0,0.3)',
        shadowBlur:5
      },
      barWidth:12,
      label:{
        show:true,
        position: 'right',
        textStyle:{
          color:'#fff',
        }
      }
    },
  ],
};
onMounted(async () => {
  setTimeout(() => {
// 、初始化echarts实例
     myChart = echarts.init(target.value);
     // 3、通过实例.setOption(option)
myChart.setOption(option);
  }, 3000);
});

</script>

 

绘制风险雷达图

radar:坐标系配置

polar:坐标极点

angleAxis:坐标角度

radiusAxis:径向轴

series:核心配置

绘制异常处理双环形图

legend:图例配置(width:-5-->竖向展示)

tooltip:提示层

xAxis:x轴

yAxis:y轴

serise:


props.data.xxx.foreach((item,index)=>{
// 上层
    series.push({
        name:item.name,
        type:'pie',
        clockWise:false,
        hoverAnimation:false,
        radius:[73 - index*15+'%',68 - index*15+'%'],
        center:['55%','55%'],
        label:{
            show:false    
        },
        data:[
            {
                value:item.value,
                name:item.name
            },
            {
                value:1000,
                itemStyle:{
                    color:'rgba(0,0,0,0)',
                    borderWidth:0
                   },
                 toolip:{
                    show:false
                },
                hoverAnimation:false,

            }
        ]
       
    })
// 底层
    series.push({
        name:item.name,
        type:'pie',
        silent:true,
        z:1,
        clockWise:false,
        hoverAnimation:false,
        radius:[73 - index*15+'%',68 - index*15+'%'],
        center:['55%','55%'],
        label:{
            show:false    
        },
        data:[ {
                value:7.5,
                itemStyle:{
                    color:'rgb(3,31,62)',
                    borderWidth:0
                   },
                 toolip:{
                    show:false,
                    hoverAnimation:false,
                    }
                },
                {
                    value:2.5,
                    itemStyle:{
                    color:'rgba(0,0,0,0)',
                    borderWidth:0
                   },
                   toolip:{
                    show:false,
                    hoverAnimation:false,
                    }
                
                }]
    })
})

绘制数据传递关系图

graph和lines

xAxis:x轴,show:false

yAxis:y轴,show:false

series:

series:[
    {
        type:'graph',
        layout:'none',
        coordinateSystem:'cartesian2d',
        sysmbolSize:26,
        z:3,
        edgeLabel:{
        normal:{
            show:true,
            color:'#fff',
            textStyle:{
                fontSize:14
                },
                formatter:function(params){
                    return params.data.speed
                }
        }
    },
    label:{
        normal:{
        show:true,
        position:'bottom',
        color:'#5E5E5E'
        }
    },
    edgeSymbol:['none','arrow'],
    edgeSymbolSize:8,
    data:...,
    links:data.foreach((item,index)=>{
        source:item.source,
        target:item.target,
        speed:`${item.speed}kb/s`,
        lineStyle:{
            normal:{
                color:'#12b5d0',
                curveness:0.2
            }
            }
    })
   }
]

 

绘制关键词条文档云图

引入三方包:

npm install --save echarts-wordcloud@2.1.0

series:[{
type:[
{
    type:'wordCloud',
    sizeRange:[8,46],
    rotationRange:[0,0],
    gridSize:0,
    layoutAnimation:true,
    textStyle:{
        color:randomRGB
    },
    emphasis:{
        textStyle:{
            fontWeight:'bold',
            color:'#000'
        }
    }
    
}]
}]

 

时间轴图表绘制

const option = {
  timeline:{
    data:props.data,
    axisType:'category',
    autoPlay:true,
    playInterval:3000,
    left:'10%',
    right:'10%',
    bottom:'0%',
    width:'80%',
    label:{
      normal:{
        textStyle:{
          color:'#ddd'
        }
      },
      emphasis:{
        textStyle:{
          color:'#fff'
        }
      }
    },
    SymbolSize:10,
    lineStyle:{
      color:'#555'
    },
    checkpointStyle:{
      borderColor:'#888',
      borderWidth:2
    },
    controlStyle:{
      showNextBtn:true,
      showPreBtn:true,
      normal:{
        color:'#666',
        borderColor:'#666'
      },
      emphasis:{
        color:'#aaa'
      }
    }
  }
}

地图可视化绘制地图

  1. 导入地图的json文件
  2. 注册地图
  3. 配置option
echarts.registerMap('china',mapJson);
const option = {
          ...
    baseOption:{
        grid:{
            right:'2%',
            top:'15%',
            bottom:'10%',
            width:'20%'
        }
        geo:{
           show:true,
            map:'china',
            roam:true,
            zoom:0.8,
            center:[113.835,34.027],
            itemStyle:{
                normal:{
                    borderColor:'rgba(147,235,248,1)';
                    borderWidth:1,
                    areaColor:{
                        type:'radial',
                        x:0.5,
                        y:0.5,
                        r:0.5
                    },
                    colorStop:[
                        {offset:0,color:''},{offset:1,color:''}
                    ]
                },
                emphasis:{
                    areaColor:'',
                    borderWidth:2
                }
            }
        }
            
    }
}

地图可视化绘制散点图

   series: {
      name: 'Top 5',
      type: 'effectScatter',
      coordinateSystem: 'bmap',
      data: convertData(
        data
          .sort(function (a, b) {
            return b.value - a.value;
          })
          .slice(0, 6)
      ),
      symbolSize: function (val) {
        return val[2] / 10;
      },
      encode: {
        value: 2
      },
      showEffectOn: 'render',
      rippleEffect: {
        brushType: 'stroke'
      },
      label: {
        formatter: '{b}',
        position: 'right',
        show: true
      },
      itemStyle: {
        shadowBlur: 10,
        shadowColor: '#333'
      },
      emphasis: {
        scale: true
      },
      zlevel: 1
    }

数据自增

第三方库 countup

npm i --save countup.js@2.6.2

new CountUp(起始值,目标值).start();

电子屏幕字体

RX-LED.ttf
 

@font-face{
        font-family:'Electronic';
        src:url('./font/RX-LED.ttf');
}

渐变字体
 

.text-gradient{
    background-image: linear-gradient(to bottom,#e5e4ea,#5ea8f2);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用1panel部署Ollama WebUI(dcoekr版)浅谈

文章目录 说明配置镜像加速Ollama WebUI容器部署Ollama WebUI使用问题解决&#xff1a;访问页面空白 说明 1Panel简化了docker的部署&#xff0c;提供了可视化的操作&#xff0c;但是我在尝试创建Ollama WebUI容器时&#xff0c;遇到了从github拉取镜像网速很慢的问题&#xf…

pytest--python的一种测试框架--pytest初阶

前言 使用pytest去做测试时我们对文件名的命名其实是有规范的&#xff0c;要用test_开头&#xff01;&#xff01;&#xff01; 一、pytest初阶 def test_one():expect1actual1assert expectactual#测试专用语句&#xff1a;assert&#xff0c;识别期望与实际值是否相等这个…

后疫情时代CS保研沉思录暨2023年个人保研经验贴

个人情况 正如古话所说&#xff0c;最适合你的才是最好的。因此这里先贴上个人基本情况&#xff0c;用作参考。 如果你的个人情况与我相近&#xff0c;则有更强的参考作用。如果情况相差较大&#xff0c;也可以姑且引为例子来研究。 学校层次&#xff1a;中流至末流211 专业…

Linux 学习之路 -- 工具篇 -- gcc / g++

在 Linux 系统中&#xff0c;gcc 和 g 是两个常用的编译工具&#xff0c;分别用于编译 C 和 C 代码。下面我将介绍gcc、g的一些基本用法 目录 一、简单的认识 二、简单了解一下编译的过程 <1> 预处理阶段 <2>编译 <3>汇编 <4>链接…

Redis慢日志

SLOWLOG 是用来读取和重置 Redis 慢查询日志的命令&#xff0c;Redis 2.2.12 版本开始支持 1.Redis 慢查询日志概述 客户端从发送命令到获取返回结果经过了以下几个步骤&#xff1a; 1. 客户端发送命令 2. 该命令进入 Redis 队列排队等待执行 3. Redis 开始执行命令 - Red…

飞天使-k8s知识点28-kubernetes散装知识点5-helm安装ingress

文章目录 安装helm添加仓库下载包配置创建命名空间安装 安装helm https://get.helm.sh/helm-v3.2.3-linux-amd64.tar.gztar -xf helm-v3.2.3-linux-amd64.tar.gzcd linux-amd64mv helm /usr/local/bin修改/etc/profile 文件&#xff0c;修改里面内容,然后重新启用export PATH$P…

嵌入式数据库-Sqlite3

阅读引言&#xff1a; 本文将会从环境sqlite3的安装、数据库的基础知识、sqlite3命令、以及sqlite的sql语句最后还有一个完整的代码实例&#xff0c; 相信仔细学习完这篇内容之后大家一定能有所收获。 目录 一、数据库的基础知识 1.数据库的基本概念 2.常用数据库 3.嵌入式…

在A中删除既在B表中出现又在C表中出现的元素

方法一&#xff08;感觉有点取巧&#xff0c;不太推荐&#xff0c;但是实现简单&#xff09;&#xff1a; 算法思想:保留La的头节点&#xff0c;并用pcur指针指向La链中的第一个结点&#xff0c;通过pcur指针遍历La中的每一个元素&#xff0c;并判断该元素是否在Lb和Lc链中出现…

优化选址问题 | 基于帝国企鹅算法求解工厂-中心-需求点三级选址问题含Matlab源码

目录 问题代码问题 "帝国企鹅算法"并不是一个广为人知的优化算法,可能是一个特定领域或者特定情境下提出的方法。不过,对于工厂-中心-需求点三级选址问题,它可能是一种启发式优化方法,用于在多个候选位置中选择最优的工厂、中心和需求点位置。 这类问题通常涉及…

HAL STM32 硬件I2C方式读取AS5600磁编码器获取角度例程

HAL STM32 硬件I2C方式读取AS5600磁编码器获取角度例程 &#x1f4cd;相关篇《STM32 软件I2C方式读取AS5600磁编码器获取角度例程》 ✨stm32使用硬件I2C去读取角度数据&#xff0c;通过STM32CubeMX工具配置工程&#xff0c;读取角度数据&#xff0c;只需要调用一个函数&#xf…

css3之动画animation

动画animation 一.优点二.定义和使用三.动画序列和解释四.常见属性及解释五.简写&#xff08;名字和时间不能省略&#xff09;&#xff08;持续时间在何时开始的时间前&#xff09;&#xff08;简写中无animation-play-state)六.例子1.大数据热点图2.奔跑的熊大&#xff08;一个…

大模型与数据分析:探索Text-to-SQL

当今大模型如此火热&#xff0c;作为一名数据同学&#xff0c;持续在关注LLM是如何应用在数据分析中的&#xff0c;也关注到很多公司推出了AI数智助手的产品&#xff0c;比如火山引擎数智平台VeDI—AI助手、 Kyligence Copilot AI数智助理、ThoughtSpot等&#xff0c;通过接入人…

同一个主机配置多个SSH key

使用git时&#xff0c;我们可能一个git客户端使用多个git服务器&#xff0c;比如github&#xff0c;自建gitlab&#xff0c;gitee&#xff0c;为了防止提交混乱&#xff0c;所以需要一一对应生成公私钥。 第一步&#xff1a; 使用ssh-keygen生成多对密钥对&#xff0c;比如&…

深入理解SQLite:存储引擎、索引、事务与锁

文章目录 一、存储引擎二、索引的数据结构和类型2.1 B-Tree2.2 其他类型的索引2.3 小结 三、事务处理中的一致性问题3.1 脏读&#xff08;Dirty Read&#xff09;3.2 不可重复读&#xff08;Non-repeatable Read&#xff09;3.3 幻读&#xff08;Phantom Read&#xff09;3.4 小…

python实战之进阶篇(二)

一. python中的继承 二. 多继承 如果一个类继承了多个类, 多个父类中有相同的方法, 相同的方法则按照继承的顺序,继承第一个父类的 如果子类重写父类中继承的方法, 则子类中重写的方法生效 三. 继承与多态

数据结构03:栈、队列和数组 栈习题01[C++]

考研笔记整理~&#x1f95d;&#x1f95d; 之前的博文链接在此&#xff1a;数据结构03&#xff1a;栈、队列和数组_-CSDN博客~&#x1f95d;&#x1f95d; 本篇作为链表的代码补充&#xff0c;供小伙伴们参考~&#x1f95d;&#x1f95d; 第1版&#xff1a;王道书的课后习题…

ubuntu22.04@Jetson Orin Nano安装配置VNC服务端

ubuntu22.04Jetson Orin Nano安装&配置VNC服务端 1. 源由2. 环境3. VNC安装Step 1: update and install xserver-xorg-video-dummyStep 2: Create config for dummy virtual displayStep3: Add the following contents in xorg.conf.dummyStep 4: Update /etc/X11/xorg.con…

使用Flink实现MySQL到Kafka的数据流转换

使用Flink实现MySQL到Kafka的数据流转换 本篇博客将介绍如何使用Flink将数据从MySQL数据库实时传输到Kafka&#xff0c;这是一个常见的用例&#xff0c;适用于需要实时数据connector的场景。 环境准备 在开始之前&#xff0c;确保你的环境中已经安装了以下软件&#xff1a;…

再次加深理解Java中的并发编程

目录 一、线程、进程、程序 二、线程状态 三、线程的七大参数 四、lock与synchronized锁机制 一&#xff09;、lock与synchronized锁区别 二&#xff09;、synchronized锁原理 三&#xff09;、Lock锁原理 五、synchronized锁升级原理 一&#xff09;、锁升级基础知识 …

超文本传输协议HTTP

HTTP协议 在网络通信中&#xff0c;我们可以自己进行定制协议&#xff0c;但是也有许多已经十分成熟的应用层协议&#xff0c;比如我们下面说的HTTP协议。 HTTP协议简介 HTTP&#xff08;Hyper Text Transfer Protocol&#xff09;协议又叫做超文本传输协议&#xff0c;是一…