G2.

news/2024/10/22 14:29:12/

图例配置

  • shape, color, size 这三个图形属性如果判断接收的参数是数据源的字段时,会自动生成不同的图例;
  • shape属性,会根据不同的 shape 类型生成图例;
  • color 属性,会赋予不同的图例项不同的颜色来区分图形;
  • size属性,在图例上显示图形的大小。

图例类型

G2 中图例分为连续图例和分类图例两种,由于这两种图例的结构不同,所以配置项也存在差异。

分类图例
在这里插入图片描述
连续图例
在这里插入图片描述

图例同坐标轴一样,其内容也是由 scale 度量控制的,而渲染的细节,则是由主题控制,G2 同样开放了 chart.legend() 接口供用户进行个性化配置。

隐藏图例、更改图例位置

chart.legend(false); // 关闭全部图例
chart.legend('x',false);//只隐藏x维度对应的图例//更改图例位置
chart.legend({position: 'right',
}); // 图例进行整体配置
//更改 x 维度对应的图例的显示位置
chart.legend('x',{
position:'bottom',
});

图形标注配置(annotation)

图表标注类型及语法

  • arc:辅助弧线,只在极坐标系下生效。常用于绘制仪表盘。
chart.annotation().arc({});
  • image:辅助图片,在图表上添加辅助图片。
chart.annotation().image({});
  • line:辅助直线。
chart.annotation().line({});
  • region:辅助框,框选一段图区,设置背景、边框等。
chart.annotation().region({});
  • regionFilter:区域着色,将图表中位于矩形选区中的图形元素提取出来,重新着色。
chart.annotation().regionFilter({})
  • dataMarker:特殊数据点标注,多用于折线图和面积图。
chart.annotation().dataMarker({})
  • dataRegion:特殊数据区间标注,多用于折线图和面积图。
 chart.annotation().dataRegion({})

清空图形标注

//清空所有的图形标注,但不会清空配置,当用户再次调用 chart.render() 时,所有的 annotation 会重新绘制。
chart.annotation().clear();//清空所有图形标注,同时清空配置
chart.annotation().clear(true);

动态图形标注

G2 图形标注接受的位置信息的参数都是原始数据值,辅助标记一旦生成后就是固定了位置,如果数据是动态更新的那么这个过程需要频繁进行,辅助标记需要不断地删除重新创建,非常麻烦;基于这种场景 Annotation 提供了如下两种解决方案

  • 使用 ‘min’, ‘median’, ‘max’ 关键字,代表原始值的最小值、平均值、最大值,例如: [0, ‘min’] 表示 x 轴上数值为 0,y 轴位置在数值的最小值上;
  • 表示位置的数组可以换成回调函数,函数原型: function(xScale, yScales) {return [];}

玫瑰图代码片段

 const data=[];//floor() 方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数const time=Math.floor(new Date().getTime()/1000)*1000;for(let i=-19;i<=0;i++) {data.push({time:time+i*3*1000,//random() 方法可返回介于 0(包含) ~ 1(不包含) 之间的一个随机数value:Math.random()+0.25,});}// 查找最大值
function findMax() {let maxValue = 0;let maxObj = null;data.forEach((obj) => {if (obj.value > maxValue) {maxValue = obj.value;maxObj = obj;}});return maxObj;
}
const chart = new G2.Chart({// 创建图表container: 'c1',autoFit: false,width: 600,height: 450,
});
chart.data(data.concat([]));
chart.scale({time: {type: 'time',mask: 'HH:mm:ss',},value: {nice: true,},
});
chart.animate(false);
// chart.axis(false);//axis坐标样式配置
chart.legend(false); // 关闭全部图例
chart.coordinate('polar',{innerRadius:0.1,
})
chart.interval().position('time*value').color('value');chart.annotation().text({position() {const obj = findMax();return [obj.time, obj.value];},content: '最大值',
});chart.render();setInterval(function() {data.shift();data.push({time: new Date().getTime(),value: Math.random() + 0.25,});chart.changeData(data.concat([]));
}, 3000);

文本标签配置

语法:
geometry.label();

文本标签类型: 分为’base’、‘interval’、‘pie’、‘polar’,4种类型。

树图为例

    fetch('https:/g2.antv.vision/zh/examples/data/flare.json').then(res => res.json()).then(data => {const dv = new DataSet.View().source(data, {type: 'hierarchy'});dv.transform({type: 'hierarchy.tree'});const chart = new G2.Chart({container: 'container',autoFit: true,height: 500,padding: [50, 0, 20, 0]});chart.axis(false);chart.legend(false);chart.coordinate('polar');chart.scale({x: {nice: true,sync: true,},y: {nice: true,sync: true,},});const edgeView = chart.createView();edgeView.data(dv.getAllLinks().map(link => ({x: [link.source.x, link.target.x],y: [link.source.y, link.target.y],source: link.source.id,target: link.target.id})));edgeView.edge().position('x*y').shape('smooth') // vhv.color('grey').tooltip('source*target').style({strokeOpacity: 0.5,});const nodeView = chart.createView();nodeView.data(dv.getAllNodes().map(node => ({hasChildren: !!(node.data.children && node.data.children.length),name: node.data.name,value: node.value,depth: node.depth,x: node.x,y: node.y})));nodeView.point().position('x*y').color('hasChildren').label('name', {offset: 0,labelEmit: true,style: {fill: 'grey',fontSize: 9,}});chart.render();});

http://www.ppmy.cn/news/345091.html

相关文章

G120C: Description

3.1 Scope of delivery inverters FSAA ... FSC The delivery comprises at least the following components: ● A ready to run inverter with loaded firmware. ● 1 set of terminal strips for connecting the inputs and outputs ● 1 set of shield plates, including …

部署Alertmanager对prometheus监控检测飞书报警通知

告警效果 一、编写alertmanager.yml 创建个目录存放alertmanager.yml文件 mkdir -p /data/alertmanager vi alertmanager.ymlroute:group_by: [alertname]group_wait: 30sgroup_interval: 30srepeat_interval: 1mreceiver: web.hook receivers:- name: web.hookwebhook_confi…

微信红包软件可测试,微信抢红包神器测试g2020

微信抢红包神器测试g是一款在2020年全新升级推出的可以辅助微信抢红包的神器。微信抢红包神器测试g支持自动抢红包的功能&#xff0c;自动开启&#xff0c;即使手机锁屏&#xff0c;后台依然可以自动帮你抢红包&#xff0c;而且还可以自动回复哦&#xff0c;自定义开启&#xf…

JavaScript字符串常用方法

关注“大前端私房菜”微信公众号&#xff0c;输入暗号【面试宝典】即可免费领取107页前端面试题。 字符串的常用方法 我们操作字符串&#xff0c;也有一堆的方法来帮助我们操作&#xff0c;字符串和数组有一个一样的地方&#xff0c;也是按照索引来排列的 注意&#xff1a;所有…

MAC系统使用

查看端口占用情况 //如查看8080端口的占用情况 sudo lsof -i tcp:9901//比如我们想要释放Java占用的9901端口 PID 是 12420 kill -9 12420

《低代码指南》低代码开发平台Noodl即将开源

Noodl 是一个低代码开发平台,让设计师、开发者能够用低代码的可视化编程方法构建强大的 Web 应用。目前 Noodl 已被亚马逊、三星、沃尔玛等财富 500 强企业应用于原型设计到生产环境中。 日前,Noodl 官方发出公告表示,将从现有的付费订阅模式向开源模式过渡。 Noodl 目前的…

<Linux>《OpenSSH 守护进程配置文件sshd_config详解》

《OpenSSH 守护进程配置文件sshd_config详解》 1 描述2 关键字2.1 AcceptEnv2.2 AddressFamily2.3 AllowAgentForwarding2.4 AllowGroups2.5 AllowStreamLocalForwarding2.6 AllowTcpForwarding2.7 AllowUsers2.8 AuthenticationMethods2.9 AuthorizedKeysCommand2.AuthorizedK…

跑步耳机哪个牌子好?推荐几款专业跑步耳机

作为一名跑步爱好者&#xff0c;在不同距离的奔跑过程中我会佩戴蓝牙运动耳机并选择选择一些合适的音乐来帮助我熟悉节奏。对跑步这种出汗很多&#xff0c;步伐频繁的运动来讲对耳机的要求更高。舒适度&#xff0c;防水性&#xff0c;续航能力&#xff0c;重量等等都是需靠考量…