问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

echarts 关系图

发布网友 发布时间:2022-04-23 01:35

我来回答

3个回答

懂视网 时间:2022-04-22 18:36

本篇文章给大家带来的内容是关于echarts环形图点击旋转并高亮的实现方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

通过计算某个扇形区域的值占整个圆的百分比来得到这个扇形的角度,从而根据startAngle这个属性来设定图形的开始渲染的角度,使点击某个扇形时圆环旋转使之始终对准某个点。

期间考虑到某扇形区域太小点击不到,来设置最小扇形区域。

const myChartContainer = document.getElementById( 'chart' );
const myChart = echarts.init( myChartContainer );
let minAngle = 30;// 最小扇形区域为30
for ( let i = 0; i < obj.data.length; i++ ) { //某项数据为0时,最小扇形区域为0
 if ( obj.data[ i ].value === 0 ) {
 minAngle = 0;
 break;
 }
}
const pieValue = obj.data.map( v => { 
 return v.value;
} )
const sum = pieValue.reduce( ( prev, cur ) => {//数据值的总和
 return prev + cur;
}, 0 );
const sum2 = pieValue.reduce( ( prev, cur ) => {
 if ( cur < sum / 12 && cur > 0 ) {//某个值大于0小于总和的1/12即30时,按30计算和
 return prev + sum / 12;
 }
 return prev + cur;
}, 0 );
let initPieValue = pieValue[ 0 ];// 初始值
if ( initPieValue < sum / 12 && initPieValue > 0 ) {
 initPieValue = sum / 12;
}
const option = {
tooltip: {
 show: false,
 trigger: 'item',
 formatter: '{a} <br/>{b}: {c} ({d}%)'
},
legend: {
 show: false,
 orient: 'vertical',
 x: 'left'
},
color: [ '#44bbf8', '#93e588', '#ffd87b', '#f88071' ],
series: [
{
 name: '',
 type: 'pie',
 radius: [ '45%', '79%' ],
 clockWise: false,
 startAngle: 167 - ( initPieValue / sum2 * 360 / 2 ),
 minAngle: minAngle,
 avoidLabelOverlap: false,
itemStyle: {
 emphasis: {
 radius: [ '46%', '100%' ]
 }
},
label: {
 normal: {
 show: false,
 position: 'center'
 },
 emphasis: {
 show: false,
 textStyle: {
 fontSize: '30',
 fontWeight: 'bold'
 }
 }
},
labelLine: {
 normal: {
 show: false
 }
},
 data: obj.data
 }
 ]
};
myChart.setOption( option );
if ( minAngle === 30 ) { //最小扇形区域30时
myChart.dispatchAction( { type: 'highlight', seriesIndex: 0, dataIndex: 0 } );
}
let preDataIndex = 0;
myChart.on( 'click', ( v ) => {
 if ( v.dataIndex === preDataIndex ) {
 myChart.dispatchAction( {
 type: 'highlight',
 seriesIndex: 0,
 dataIndex: v.dataIndex
 } );
 return;
}
const sum1 = pieValue.reduce( ( prev, cur, index ) => {
 if ( index < v.dataIndex ) {
 if ( cur < sum / 12 && cur > 0 ) {
 return prev + sum / 12; // 饼图的扇形最小角度设置为30,占圆的1/12
 }
 return prev + cur;
 }
 return prev;
}, 0 );
let curPieValue = pieValue[ v.dataIndex ];
if ( curPieValue < sum / 12 && curPieValue > 0 ) {
 curPieValue = sum / 12;
}
option.series[ 0 ].startAngle = 167 - ( sum1 / sum2 * 360 + curPieValue / sum2 * 360 / 2 );// 开始渲染图形的角度
myChart.setOption( option );
preDataIndex = v.dataIndex;
window.setTimeout( () => {
 myChart.dispatchAction( {
 type: 'highlight',
 seriesIndex: 0,
 dataIndex: v.dataIndex
 } );
}, 400 );
this.mrkName = v.data.name;
this.mrkValue = v.data.value;
} );

热心网友 时间:2022-04-22 15:44

使用_buildLinkShapes(nodes, links)函数,针对定义的全部线段数据,设置线段的权重(粗细)、样式和高亮样式。
1、zrender定义线段数据:

{source : 1, target : 0, weight : 1,
onclick:function(params){
alert(params.target.style.text);
},
itemStyle:{
normal:{
lineWidth:10,
text:'丽萨-乔布斯',
textColor:'#030303',
textFont:'bold 15px verdana',
textPosition:'inside'
}
}}

onclick是点击事件。onclick:function(params){alert(params.target.shape);
lineWidth是线段宽度。
text是标注的文字。
textPosition 采用的zrender中的文字位置。

定义线段事件和样式全部代码:

function _buildLinkShapes(nodes, links) {
var l = links.length;
for (var i = 0; i < l; i++) {
var link = links[i];
//var source = nodes[link.source];
// var target = nodes[link.target];
var weight = link.weight || 1;
linkWeights.push(weight);
var shape = {
id : zr.newShapeId(self.type),
shape : 'line',
hoverable : false,
style : {
xStart : 0,
yStart : 0,
xEnd : 0,
yEnd : 0
},
clickable : true,
highlightStyle : {}
};
zrUtil.merge(shape.style, linkStyle);
zrUtil.merge(shape.highlightStyle, linkEmphasisStyle);
//优先级 ItemStyle > linkStyle
if (typeof(link.itemStyle) !== 'undefined') {
if(link.itemStyle.normal){
zrUtil.merge(shape.style, link.itemStyle.normal, {
overwrite : true
});
}
if(link.itemStyle.emphasis){
zrUtil.merge(
shape.highlightStyle,
link.itemStyle.emphasis,
{ overwrite : true }
);
}
}
//zhao
if (typeof (link.onclick) !== 'undefined') {
if (link.onclick) {
shape.onclick = link.onclick;
}
}
linkShapes.push(shape);
self.shapeList.push(shape);
zr.addShape(shape);
}
var narr = new NDArray(linkWeights);
var max = narr.max();
if (max !== 0) {
linkWeights = narr.mul(1/max, narr).toArray();
}
}

热心网友 时间:2022-04-22 17:19

{
source : "及时雨\n宋江",
target : "铁扇子\n宋清",
value : "兄弟",
symbol : [ 'arrow', 'arrow' ]
},
在links中添加 symbol属性就可以了
用Pyecharts绘制网络关系图

对照pyecharts文档照猫画虎,绘制了一个文本引用关系的关系图。按照说明文档,关系图需要的数据包括:GraphNode(节点数据项)、GraphLink(节点间的关系数据)和GraphCategory(节点分类类目),如下图。我自己绘制的关系图如下。试了下 'symbol' 参数指定节点图形;以及将节点连线指定为由 'source' 指向...

ECharts绘图解决方案——流动关系图(桑基图)

用流动关系图来映射品牌之间的有效换机数量,从而帮助运营对手机品牌的行情做分析和预测。最终实现效果如下图所示:以上生成的配置项均可直接粘贴在 https://echarts.apache.org/examples/zh/editor.html?c=line-simple 查看效果。

echarts流程图如何生成坐标

这是要自定义生成的。使用键值对的形式进行存取。为了建立流程图,需要使用echarts的关系图组件,即type类型为‘graph’。首先创建一个div,为echarts准备一个具备大小的Dom,然后指定图表的配置项和数据。其中,symbol参数可以修改元素的样式,‘roundRect’为圆角矩形,还有’circle’, ‘rect’, ‘triang...

Echarts 力导向图的连线,怎么配置不同长度

我做的关系图中,data/nodes属性里面有一个x,y坐标。把xy坐标填上就可以根据x,y坐标调整线的长度。{ 'id': 14, 'category': 3, 'name': '14', 'symbolSize': 8, x: -220, y: 400 ,itemStyle: {color: '#ffffff'}, label: {show: true, position: 'left', color: '#00000...

echart树形图实现点击节点完整链路更换颜色

在某些需求下需要用到树形图来表达数据结构,我使用的是 echarts ,关于 echart 树形图的基础配置和使用这里就不展开。直接上图,这是一个基础的树形图demo:当点击非最末节点的时候,echart的默认行为为收缩该节点的子节点,这个行为会与下面实现的效果有关系,效果:下面进入实现,一开始思考这个需求的...

为什么echarts关系图在火狐失效

多数情况是兼容原因,建议在火狐浏览器上安装Firebug,使用这个工具调试一下,多数错误插件会有明确提示。

echart大神前来帮忙,用echart做一个关系图,页面总是有错,

echart大神前来帮忙,用echart做一个关系图,页面总是有错, 20 用java做一个关系图,浏览器总是报如图所示的问题,下面这个链接是echart官网的实例原型,http://echarts.baidu.com/echarts2/doc/example/webkit-dep.html希望大神可以把写好的页面发... 用java做一个关系图,浏览器总是报如图所示的问题,下面这个...

echarts官网直接提供的模板有哪些

6. 雷达图(Radar Chart):这个图表类型用于展示多个变量之间的关系。ECharts提供了多种雷达图样式,包括普通雷达图、分组雷达图等。除了以上常见的图表类型,ECharts还提供了其他一些图表模板,如K线图、漏斗图、热力图等。这些模板可以帮助用户更好地展示数据,并提高数据可视化的效果。在使用这些模板时,...

如何使用python的pyecharts的timeline时间轴组件构建带有

Timeline:时间线轮播多图通过轮播模式展示多个时间点的数据图,用户可根据时间轴滚动查看不同时间的数据情况,适合展示动态数据流。基本设置初始化Pyecharts环境,定义数据源与时间轴参数,设置图表样式与交互控制。时间轴 checkpoint 样式配置调整时间点的样式,如颜色、大小等,以突出重要时间点或数据变化。时...

echarts漏斗图

漏斗图:漏斗图是用于单流程的数据分析,在数据间有逻辑关系且依次减少时适用。介绍一种简单的制作漏斗图的方法:1、 进入BDP个人版界面后,点击上传数据,将记录活动数据的Excel表格上传至BDP内,再回到工作表内,选择你刚刚上传的数据,点击右上角的新建图表,就可以开始制作仪表盘啦!2、上传所需要...

echarts的Graph echarts关系图谱 echarts节点关系图 echarts关系图箭头 echarts设置关系图点位置 echarts 关系图节点动画 echats关系图的数据结构 echarts关系图连线文字位置 echarts关系图节点换成图片
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大额居间费税收最新政策 语文作业~要探险家的故事:哥伦布的、麦哲伦的、斯文赫定的、南森的... 政府聘用人员能单独做业务吗? ...麦哲伦、斯文赫定、南森、张骞、郑和、徐霞客、尧茂书、余纯顺几人... 假如我有一只尼尔斯的鹅 作文来的喔,怎么写啊?要自己写的。 我梦见了尼尔斯的鹅作文400字,仿写 竣工验收责任主体缺失怎么办 政府公关主体的缺失,对外集中表现为什么 ...吗?早晨往头发上喷了发交,晚上回来想染头发可以吗?能不能染... 主体性缺失的表现 如何将echarts图例与曲线显示顺序不一致 微信删除了对方,怎么判断对方是删除还是拉黑自己呢? echarts中x轴类型为time时如何显示多条曲线? ECharts 学习笔记 如何去掉点以及让曲线平滑 echarts曲线怎么动态加载数据 血细胞冻存后还能分离吗(血细胞,液氮妫 液氮可以储存多久(液氮,降解,液氮妫 睾丸发炎好像?能用盐水洗么? 热水器空气开关跳闸了 草莓不能和什么水果一起吃? 草莓不能与哪些食物一起吃呢? 草莓不能和什么一起吃 飞机上可以带草莓吗 草莓能不能多吃 草莓能不能煮 燃气热水器启动跳闸的原因是什么? 草莓能保存几天? 草莓可以带上飞机么? 过夜的草莓能不能吃 如何关闭摄像头? 如何使用echarts实现甘特图 echarts图标能不能清除个别曲线 怎么实现echarts曲线下拉框 【百度指数】请问百度指数中如下图表完成思路是怎么样的? echarts.js每条线头部名称专业叫法叫什么?怎么把它放到曲线图里面,而不... 怎么看别人把你删除还是拉黑 echarts 折现图加载什么模块 如何判断微信是被删除了呢?还是被拉黑了?还是被屏蔽了朋友圈呢?_百度... echarts怎么实现立体柱图(如图)? 微信怎么确认对方删除还是拉黑 echarts xaxis.offset 怎么使用 要怎么知道是否被QQ好友删除或拉黑了? echarts 折线图中 如何让为0 的数据不显示并且以此断开 ECharts只有一条曲线的情况下怎样设置双Y轴 ECharts学习笔记&lt;如何去掉点以及让曲线平滑&gt; echarts 折线图x,y轴的刻度字体颜色怎么改?? 拍婚纱照的风格有哪几种 拍婚纱照都有哪些风格 婚纱照的风格有哪些? 婚纱照风格分类?