echarts 二分图布局_力向导图_关系图

Echarts 常用各类图表模板配置

注意: 这里主要就是基于各类图表,更多的使用 Echarts 的各类配置项;

以下代码都可以复制到 Echarts 官网,直接预览;


图标模板目录

  • Echarts 常用各类图表模板配置
  • 一、力向导图(二分图布局)
  • 二、环形图
  • 三、k 线图
  • 四、折线图
  • 五、横向柱状图
  • 六、折线图 + 柱状图
  • 七、3D 柱状图
  • 八、工程项目可视化
  • 九、雷达图
  • 十、象形柱图
  • 十一、环形占比图
  • 十二、圆环动画
  • 十三、地图
  • 十四、地图 json 免费下载


一、力向导图(二分图布局)

echarts 项目可视化、自定义二分图布局,echarts 力向导图、echarts 关系图、echarts 知识图谱、ecahrts 地图、ecahrts 地图 josn 文件、地图json免费下载、ecahrts 折线图、ecahrts柱状图、echarts横向柱状图、echarts折线图+柱状图、echarts k线图、echarts环形图、echarts 3D 柱状图、echarts 象形柱图、echarts 自定义样式、echarts 矢量图、echarts 基础教程、echarts 快速入门、echarts 基础配置、charts 图表案例、echarts 大屏可视化、echarts 属性详解、echarts 动画

// 左侧节点
var leftNodeData = [
  { name: 'left-1', category: 0 },
  { name: 'left-2', category: 0 },
  { name: 'left-3', category: 0 }
];
// 右侧节点
var rightNodeData = [
  { name: 'right-1', category: 1 },
  { name: 'right-2', category: 1 },
  { name: 'right-3', category: 1 },
  { name: 'right-4', category: 1 },
  { name: 'right-5', category: 1 },
  { name: 'right-6', category: 1 },
  { name: 'right-7', category: 1 },
  { name: 'right-8', category: 1 },
  { name: 'right-9', category: 1 }
];

var coreNodes = [];
var extendsNodes = [];
var interval = 100; // 纵向节点间距
var Xinterval = 200; // 横向节点间距
var data = []; // 关系图的节点数据列表
var links = []; // 节点间的关系数据
// 节点分类的类目
var categories = [
  {
    name: '节点',
    itemStyle: {
      normal: {
        color: '#49CCFF88',
        borderColor: '#49CCFF',
        borderWidth: 2,
        shadowBlur: 10,
        shadowColor: '#49CCFF'
      }
    }
  },
  {
    name: '节点',
    itemStyle: {
      normal: {
        color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
          {
            offset: 0,
            color: '#157eff88'
          },
          {
            offset: 1,
            color: '#35c2ff88'
          }
        ]),
        borderColor: '#66BDFF',
        borderWidth: 2,
        shadowBlur: 10,
        shadowColor: '#66BDFF'
      }
    }
  }
];

function init() {
  var leftNum = leftNodeData.length;
  var rightNum = rightNodeData.length;
  // 初始化右侧数据,计算右侧节点坐标位置
  for (let i = 0; i < rightNum; i++) {
    extendsNodes.push(
      Object.assign(rightNodeData[i], {
        y: i * interval + interval,
        value: [Xinterval, i * interval + interval]
      })
    );
  }

  // 根据右侧节点坐标,计算左侧节点位置
  if (rightNum % 2 == 0) {
    if (leftNum % 2 == 0) {
      var avgNode1 = extendsNodes[rightNum / 2].y;
      var avgNode2 = extendsNodes[rightNum / 2 - 1].y;
      var coordinate = [];
      for (let i = 0; i < leftNum / 2; i++) {
        coordinate.push({
          value: [0, avgNode2 - i * interval]
        });
        coordinate.push({
          value: [0, avgNode1 + i * interval]
        });
      }
      for (let i = 0; i < leftNum; i++) {
        coreNodes.push(Object.assign(coordinate[i], leftNodeData[i]));
      }
    } else {
      var avgNode = extendsNodes[rightNum / 2].y - 50;
      var coordinate = [{ value: [0, avgNode] }];
      for (let i = 1; i <= (leftNum - 1) / 2; i++) {
        coordinate.push({
          value: [0, avgNode - i * interval]
        });
        coordinate.push({
          value: [0, avgNode + i * interval]
        });
      }
      for (let i = 0; i < leftNum; i++) {
        coreNodes.push(Object.assign(coordinate[i], leftNodeData[i]));
      }
    }
  } else {
    if (leftNum % 2 == 0) {
      var avgNode = extendsNodes[Math.round(rightNum / 2) - 1].y;
      var half = interval / 2;
      var coordinate = [];
      for (let i = 1; i <= leftNum / 2; i++) {
        coordinate.push({
          value: [0, avgNode - i * interval + half]
        });
        coordinate.push({
          value: [0, avgNode + i * interval - half]
        });
      }
      for (let i = 0; i < leftNum; i++) {
        coreNodes.push(Object.assign(coordinate[i], leftNodeData[i]));
      }
    } else {
      var avgNode = extendsNodes[Math.round(rightNum / 2) - 1].y;
      var coordinate = [{ value: [0, avgNode] }];
      for (let i = 1; i <= (leftNum - 1) / 2; i++) {
        coordinate.push({
          value: [0, avgNode - i * interval]
        });
        coordinate.push({
          value: [0, avgNode + i * interval]
        });
      }
      for (let i = 0; i < leftNum; i++) {
        coreNodes.push(Object.assign(coordinate[i], leftNodeData[i]));
      }
    }
  }

  // 节点间的关系数据
  links = [
    {
      source: 0,
      target: 5
    },
    {
      source: 1,
      target: 5
    },
    {
      source: 1,
      target: 8,
      lineStyle: {
        normal: { color: 'red' }
      },
      label: {
        color: 'green'
      }
    },
    {
      source: 2,
      target: 8,
      lineStyle: {
        normal: { color: 'red' }
      },
      label: {
        color: 'green'
      }
    },
    {
      source: 3,
      target: 1,
      lineStyle: {
        normal: { color: '#91cc75' }
      }
    },
    {
      source: 11,
      target: 2,
      lineStyle: {
        normal: { color: '#91cc75' }
      }
    }
  ];

  // 关系图的节点数据列表
  data = coreNodes.concat(extendsNodes);
}

init();

option = {
  title: {
    text: '自定义二分图布局',
    subtext: '节点 name 不能重复, 如果节点过多,出现叠加现象,可以调整 dom 元素高度。',
    top: '3%',
    left: '3%',
    subtextStyle: {
      lineHeight: 20
    }
  },
  grid: {
    left: '10%',
    right: '10%',
    bottom: '3%',
    top: '10%',
    containLabel: true
  },

  xAxis: {
    show: false,
    type: 'value'
  },
  yAxis: {
    show: false,
    type: 'value'
  },
  series: [
    {
      type: 'graph',
      layout: 'none',
      coordinateSystem: 'cartesian2d',
      symbolSize: 60,
      focusNodeAdjacency: true,
      z: 3,
      edgeLabel: {
        normal: {
          show: true,
          textStyle: {
            fontSize: 14
          },
          formatter: function (params) {
            return 'echarts';
          }
        }
      },
      label: {
        normal: {
          show: true,
          color: '#5e5e5e'
        }
      },
      lineStyle: {
        normal: {
          width: 2,
          color: '#12b5d0',
          shadowColor: 'none',
          curveness: 0
        }
      },
      edgeSymbolSize: [0, 10],
      edgeSymbol: ['circle', 'arrow'],
      data: data,
      links: links,
      categories: categories
    }
  ]
};

文章链接:https://blog.csdn.net/aibujin/article/details/134690784?spm=1001.2014.3001.5501
文章链接:https://blog.csdn.net/aibujin/article/details/134147640?spm=1001.2014.3001.5502

二、环形图

echarts 环形图:多层嵌套,自定义 legend 位置、颜色,中间插入数据及文字,颜色渐变;

文字链接: https://blog.csdn.net/aibujin/article/details/124796709?spm=1001.2014.3001.5501

三、k 线图

文章链接: https://blog.csdn.net/aibujin/article/details/124797924?spm=1001.2014.3001.5501

四、折线图

echarts 折线图,横纵坐标轴线颜色、文字颜色,网格线,坐标轴两侧留白,数据渐变,刻度线等;

文章链接:https://blog.csdn.net/aibujin/article/details/124802512?spm=1001.2014.3001.5501

文章链接:https://blog.csdn.net/aibujin/article/details/130157140?spm=1001.2014.3001.5501

文章链接:https://blog.csdn.net/aibujin/article/details/130223130?spm=1001.2014.3001.5501

五、横向柱状图

echarts 横向柱状图,坐标轴隐藏,网格线颜色渐变,网格默认背景,柱状图边框宽度/颜色,数据渐变,刻度线隐藏等;

文章链接: https://blog.csdn.net/aibujin/article/details/124802889?spm=1001.2014.3001.5501

六、折线图 + 柱状图

echarts 折线图 + 柱状图,左右两侧y轴线,横纵坐标轴线颜色、文字颜色,网格线,坐标轴两侧留白,数据渐变,刻度线等;

文章链接: https://blog.csdn.net/aibujin/article/details/124803493?spm=1001.2014.3001.5501

七、3D 柱状图

echarts 3D 柱状图,多个柱状图叠加,y轴内刻度线、隐藏横坐标,文字颜色,网格线,坐标轴两侧留白,数据渐变,刻度线等;

文章链接: https://blog.csdn.net/aibujin/article/details/124879825?spm=1001.2014.3001.5501

八、工程项目可视化

echarts 工程项目可视化,依据x轴时间坐标轴,叠加展示不同阶段的项目节点,y轴展示项目阶段名、文字颜色,网格线,坐标轴两侧留白、背景色等;

文章链接: https://blog.csdn.net/aibujin/article/details/130237643?spm=1001.2014.3001.5501

九、雷达图

echarts 雷达图,自定义指示器名称,线条样式、区域填充样式、折线拐点标志、自定义名称样式、坐标轴分隔线、坐标轴两侧留白、背景色等;

文章链接:https://blog.csdn.net/aibujin/article/details/130266382?spm=1001.2014.3001.5501

十、象形柱图

echarts 象形柱图,隐藏横纵坐标轴、网格线,坐标轴两侧留白,自定义矢量图,文字提示框、图形类型、背景色等;

文章链接:https://blog.csdn.net/aibujin/article/details/130289101?spm=1001.2014.3001.5501

十一、环形占比图

echarts 环形占比图,环形图、仪表盘、刻度线,自定义提示框、颜色渐变、背景色等;

文章链接:https://blog.csdn.net/aibujin/article/details/130265744?spm=1001.2014.3001.5501

十二、圆环动画

echarts 圆环动画,饼图、环形图、图表动画、网格线,颜色渐变,图行矢量,文字提示框、图表层级、背景色等;

文章链接:https://blog.csdn.net/aibujin/article/details/130288849?spm=1001.2014.3001.5501

十三、地图

echarts 地图,自定义提示框;

文章链接:https://blog.csdn.net/aibujin/article/details/130532911?spm=1001.2014.3001.5501

十四、地图 json 免费下载

  1. 全省份 json 下载:https://mp.csdn.net/mp_download/manage/download/UpDetailed?spm=3001.5299

  2. 阿里数据可视化平台下载:http://datav.aliyun.com/portal/school/atlas/area_selector

在这里插入图片描述
3. https://geojson.cn/

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

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

相关文章

【力扣题解】P98-验证二叉搜索树-Java题解

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P98-验证二叉搜索树-Java题解&#x1f30f;题目描述&#x1f4a1;题解&#x1f30f;总…

分割数组的最大差值 - 华为OD统一考试

分割数组的最大差值 - 华为OD统一考试 OD统一考试 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 给定一个由若干整数组成的数组nums &#xff0c;可以在数组内的任意位置进行分割&#xff0c;将该数组分割成两个非空子数组(即左数组和右数组)&#xf…

【2024最新版】neo4j安装配置

neo4j安装 写在最前面下载配置环境&#xff08;还是不行&#xff1f;&#xff09;启动neo4jpython中调用 写在最前面 之前我安装过&#xff0c;还写了一篇笔记 结果意外发现没有了&#xff0c;而且和之前安装的步骤不一样了&#xff0c;因此再次记录安装过程 下载 https://ne…

OpenGL FXAA抗锯齿算法(Qt)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 之前已经提供了使用VCG读取Mesh的方式,接下来就需要针对读取的网格数据进行一些渲染操作了。在绘制Mesh数据时总会遇到图形的抗锯齿问题,OpenGL本身已经为我们提供了一种MSAA技术,但该技术对于一些实时渲染性能有…

【数据结构】栈和队列(栈的基本操作和基础知识)

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 目录 前言 栈 栈的概念和结构 栈的实现 ​…

Rust使用gRPC

需要先安装protoc&#xff08;Protocol Buffers Compiler&#xff09;&#xff0c;可据此Protobuf Compiler Installation下载 第一步&#xff1a;创建项目 创建两个新的Rust项目&#xff0c;分别作为服务端与客户端&#xff1a; cargo new rust_grpc_servercargo new rust_grp…

elasticsearch系列九:异地容灾-CCR跨集群复制

概述 起初只在部分业务中采用es存储数据&#xff0c;在主中心搭建了个集群&#xff0c;随着es在我们系统中的地位越来越重要&#xff0c;数据也越来越多&#xff0c;针对它的安全性问题也越发重要&#xff0c;那如何对es做异地容灾呢&#xff1f; 今天咱们就一起看下官方提供的…

Redis(上)

1、redis Redis是一个完全开源免费的高性能&#xff08;NOSQL&#xff09;的key-value数据库。它遵守BSD协议&#xff0c;使用ANSI C语言编写&#xff0c;并支持网络和持久化。Redis拥有极高的性能&#xff0c;每秒可以进行11万次的读取操作和8.1万次的写入操作。它支持丰富的数…

步进电机为什么叫步进电机,内部结构是什么,工作原理是什么,有什么特点,什么用途。

问题描述&#xff1a;步进电机为什么叫步进电机&#xff0c;内部结构是什么&#xff0c;工作原理是什么&#xff0c;有什么特点&#xff0c;什么用途。 问题解答&#xff1a; "步进"一词表示电机按照固定的步进角度运动。步进电机以控制脉冲信号来驱动转子按照一定的…

Vue2中使用echarts,并从后端获取数据同步

一、安装echarts npm install echarts -S 二、导入echarts 在script中导入&#xff0c;比如&#xff1a; import * as echarts from "echarts"; 三、查找要用的示例 比如柱状图 四、初始化并挂载 <template><div id"total-orders-chart" s…

三天吃透Java基础面试八股文

给大家分享我整理的Java高频面试题&#xff0c;有小伙伴靠他拿到字节offer了。 Java基础面试题 Java的特点Java 与 C 的区别JDK/JRE/JVM三者的关系Java程序是编译执行还是解释执行&#xff1f;面向对象和面向过程的区别&#xff1f;面向对象有哪些特性&#xff1f;数组到底是…

适用于电脑的 8 款文件/软件迁移软件 – 快速安全地更换电脑!

将文件/软件从一台设备传输到另一台设备已成为我们日常生活的重要组成部分&#xff0c;无论是出于个人目的还是出于职业目的。在当今快节奏的世界中&#xff0c;我们经常需要在不同设备之间传输大文件&#xff0c;例如视频、照片、文档等。虽然云服务提供了一种共享文件的好方法…

关于Python里xlwings库对Excel表格的操作(二十四)

这篇小笔记主要记录如何【如何使用xlwings库中的“api”类设置单元格边界线型、粗细、颜色】。前面的小笔记已整理成目录&#xff0c;可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 &#xff08;1&#xff09;如何安装导入xlwings库&#xff1b;…

Android--Jetpack--Paging详解

不尝世间醋与墨&#xff0c;怎知人间酸与苦。 择一业谋食养命&#xff0c;等一运扭转乾坤。 你见过哪些令你膛目结舌的代码技巧&#xff1f; 文章目录 不尝世间醋与墨&#xff0c;怎知人间酸与苦。择一业谋食养命&#xff0c;等一运扭转乾坤。你见过哪些令你膛目结舌的代码技…

【GoLang】Go语言几种标准库介绍(三)

文章目录 前言几种库debug 库 (各种调试文件格式访问及调试功能)相关的包和工具&#xff1a;示例 encoding (常见算法如 JSON、XML、Base64 等)常用的子包和其主要功能&#xff1a;示例 flag(命令行解析)关键概念&#xff1a;示例示例执行 总结专栏集锦写在最后 前言 上一篇&a…

【ArcGIS微课1000例】0085:甘肃省白银市平川区4.9级地震震中位置图件制作

据中国地震台网正式测定,12月31日22时27分在甘肃白银市平川区发生4.9级地震,震源深度10公里,震中位于北纬36.74度,东经105.00度。 文章目录 一、白银市行政区划图1. 县级行政区2. 乡镇行政区二、4.9级地震图件制作1. 震中位置2. 影像图3. 震中三维地形一、白银市行政区划图…

【JavaFX】基于JavaFX11 构建可编辑、对象存储、修改立即保存、支持条件过滤的TableView

文章目录 效果设计思路二、使用步骤1. 创建实体类2.读取本地文件数据3. 定义表格TableView总结效果 如图所示,这是一个存储application.properties内容的表格。这里的文件application.properties是从Linux服务器上获取来的。 当点击检索按钮,并输入条件匹配字符时,TableVie…

初识SpringBoot(2023最后一篇文章)

初识SpringBoot 1、SpringBoot概述 Spring是什么&#xff1f; Spring是一个于2003 年兴起的一个轻量级开源Java开发框架&#xff0c;由Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》。Spring是为了解决企业级应用开发的复杂性而创建的&#xff0c;使…

「微服务」微服务架构中的数据一致性

在微服务中&#xff0c;一个逻辑上原子操作可以经常跨越多个微服务。即使是单片系统也可能使用多个数据库或消息传递解决方案。使用多个独立的数据存储解决方案&#xff0c;如果其中一个分布式流程参与者出现故障&#xff0c;我们就会面临数据不一致的风险 - 例如在未下订单的情…

Linux-------rm命令超详解(狠狠爱住)

目录 rm 命令用于在Linux系统中删除指定的文件或目录 基本语法&#xff1a; 常用选项&#xff1a; 示例用法&#xff1a; 放在文末的话&#xff1a; 补充&#xff1a; rm 命令用于在Linux系统中删除指定的文件或目录 基本语法&#xff1a; rm [选项] 文件名/目录名 常用…