项目中有时会用到echarts,可能不同的框架中语法稍有变通,前几天在react项目中遇到,写此篇以作记录。

不同的charts语法跟支持不同,本篇"echarts": "^4.2.0-rc.2"

前期准备

cnpm i -S echarts

import echarts from 'echarts/lib/echarts';    //必须
import "echarts/lib/chart/graph"; //引入折线图(按需)
import'echarts/lib/chart/line’ //引入折线图(按需)

App.jsx

import echarts from 'echarts/lib/echarts';
import "echarts/lib/chart/graph";
import options from './options'; //echarts相关配置 componentDidMount(){
let myChart = echarts.init(document.getElementById('main'));
//若有数据交互此处改变渲染数据,保留原有样式与配置
if(res.data.nodes){
options.series[0].data=res.data.nodes;
options.series[0].links=res.data.links;
}
// 绘制图表
myChart.setOption(options);
//一些事件
myChart.on('click', params=> {
...
console.log(params.data);
});
} render() {
return (
<div className='atlas-wrap'>
<div id="main"></div> //可通过id设置样式
</div>
)
}

options.js

export default {
title: {
text: ''
},
tooltip: {},
animationDurationUpdate: 1500,
animationEasingUpdate: 'quinticInOut',
label: {
normal: {
show: true,
textStyle: {
fontSize: 12
},
}
},
legend: {
x: "center",
show: false,
data: ["夫妻", "战友", '亲戚']
},
series: [
{
type: 'graph',
layout: 'force',
symbolSize: 45,
focusNodeAdjacency: true,
roam: true,
categories: [{
name: '夫妻',
itemStyle: {
normal: {
color: "#009800",
}
}
}, {
name: '战友',
itemStyle: {
normal: {
color: "#4592FF",
}
}
}, {
name: '亲戚',
itemStyle: {
normal: {
color: "#3592F",
}
}
}],
label: {
normal: {
show: true,
textStyle: {
fontSize: 12
},
}
},
force: {
repulsion: 1000
},
edgeSymbolSize: [4, 50],
edgeLabel: {
normal: {
show: true,
textStyle: {
fontSize: 10
},
formatter: "{c}"
}
},
data: [{
name: 'Mary',
draggable: true,
}, {
name: 'Tom',
category: 1,
draggable: true,
}, {
name: 'Allen',
category: 1,
draggable: true,
}, {
name: 'Kevin',
category: 1,
draggable: true,
}, {
name: 'Rose',
category: 1,
draggable: true,
}],
links: [{
source: 0,
target: 1,
category: 0,
value: '夫妻'
}, {
source: 0,
target: 2,
value: '子女'
}, {
source: 0,
target: 3,
value: '夫妻'
}, {
source: 0,
target: 4,
value: '父母'
}, {
source: 1,
target: 2,
value: '表亲'
}],
lineStyle: {
normal: {
opacity: 0.9,
width: 1,
curveness: 0
}
}
}
]
}

相关配置文档:

http://echarts.baidu.com/option.html#series-graph

参考文档:http://gallery.echartsjs.com/explore.html?u=bd-2135947294&type=work#sort=rank~timeframe=all~author=all

react中使用echarts(人物关系图)的更多相关文章

  1. 红楼梦人物关系图,一代大师成绝响,下回分解待何人,kindle读书摘要

      人物关系图: https://www.cnblogs.com/images/cnblogs_com/elesos/1120632/o_2033091006.jpg 红楼梦 (古典名著普及文库) ( ...

  2. python 绘制三国人物关系图

    author:weizhendong data:2019.12.19 func:绘制三国演义人物关系图 """ import codecs import jieba.po ...

  3. 凭借SpringBoot整合Neo4j,我理清了《雷神》中错综复杂的人物关系

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 虽然距离中秋放假还要熬过漫长的两天,不过也有个好消息,今天是<雷神4>上线Disney+流媒体的日子 ...

  4. java+数据库+D3.js 实时查询人物关系图

    先看下 效果 某个用户,邀请了自己的朋友 ,自己的朋友邀请了其他朋友,1 展示邀请关系,2 点击头像显示邀请人和被邀请人的关系.(网上这种资料很少, 另外很多都是从JSON文件取 数据, 这里是从数据 ...

  5. 【 D3.js 高级系列 — 2.0 】 机械图 + 人物关系图

    机械图(力路线图)结合老百姓的关系图中的生活,这是更有趣. 本文将以此为证据,所列的如何图插入外部的图像和文字的力学. 在[第 9.2 章]中制作了一个最简单的力学图.其后有非常多朋友有疑问,基本的问 ...

  6. 前端 | 使用 ECharts 绘制关系图

    0 需求 做的项目需要画一个关系图,主要需求如下: 需要展示6种对象之间的关系:数据机构 数据 合约 模型 计算机构 应用 支持突出显示6种对象中的某一种的所有对象 支持Top x子图功能.top x ...

  7. D3.js+Es6+webpack构建人物关系图(力导向图)

    功能列表:1. 增加下载SVG转PNG功能,图片尺寸超出可视区域也能够下载全部显示出来2. 增加图谱放大缩小平移功能3. 增加图谱初始化加载时自动缩放功能4. 增加导出excel功能,配合后台工具类达 ...

  8. React中使用echarts

    1.安装相关的依赖: cnpm i react-for-echarts -S cnpm i echarts -S 2.使用方法: 页面引入: import ReactEcharts from 'ech ...

  9. D3.js+Es6+webpack构建人物关系图(力导向图),动态更新数据,点击增加节点,拖拽增加连线...

    觉得不错的麻烦加个Star:https://github.com/zhangzn3/D3-Es6 在线预览地址:https://zhangzn3.github.io/D3-Es6 功能列表:1. 增加 ...

随机推荐

  1. python学习(十四) 网络编程

    14.1 少数几个网络设计模块 14.1.1 socket模块 套接字包括:服务器套接字和客户机套接字. 在创建一个服务器套架字后,让它等待连接,这样它就在摸个网络地址处(IP地址和一个端口号的组合) ...

  2. JavaScript笔记——基础知识(二)

    Function类型 函数function不需要返回类型(不是没有返回值),参数也不需要指定类型,更为特殊的是函数竟然是个类,可以通过new出来 var box= new Function('num1 ...

  3. Handler消息传送机制

    一.什么是UI线程 当程序第一次启动的时候,Android会同时启动一条主线程( Main Thread). 主要负责处理与UI相关的事件. 二.UI线程存在的问题 出于性能优化考虑,Android的 ...

  4. PHP数据结构之一:PHP数据结构基本概念—数据结构

    学习任何一种技术都应该先清楚它的基本概念,这是学习任何知识的起点!本文是讲述数据结构的基本概念,适合对数据结构已经有一定基础的程序员,更是适合想要学习数据结构的code一族!让我们开始PHP数据结构的 ...

  5. Golang简单写文件操作的四种方法

    package main import ( "bufio" //缓存IO "fmt" "io" "io/ioutil" ...

  6. java定时任务实现的几种方式(Timer、Spring Task、Quartz)

    Timer JDK自带的Timer类,允许调度一个TimerTask任务. Demo: /** * Timer测试类 */ public class TimerDemo { public static ...

  7. Django中间件CsrfViewMiddleware源码分析

    Django Documentation csrf保护基于以下: 1, 一个CSRF cookie基于一个随机生成的值,其他网站无法得到,次cookie有CsrfViewMiddleware产生.它与 ...

  8. 04-nginx日志管理

    做了几年PHP,老板.经理没说让我管过日志这东西.一般牵涉到日志运维这主要是运维的工作.但是这一章节主要是以拔高性质为主.分析日志的管理方式.PHP程序员不能光靠PHP成为高手,PHP不就if els ...

  9. Solidity字符串拼接实现oraclize动态查询

    solidity本身没有字符串拼接功能,但是如果你恰巧要用oraclize api,那么可以使用oraclize api中的字符串拼接方法(strConcat).之所以oraclize api里会有s ...

  10. Python pip命令

    一.简介 pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品.distribute是setuptools的取代(Setuptools包后期不再维护了),p ...