首页 > 其他分享 >可视化组件g2之分组箱型图、柱形图、散点图简单使用

可视化组件g2之分组箱型图、柱形图、散点图简单使用

时间:2023-04-06 15:45:50浏览次数:55  
标签:bin g2 data 散点图 value 柱形图 encode type Species

<!-- 引入 G2 文件 --> <script src="./plugins/g2.v5.min.js"></script> <style>   .container {     display: flex;   }   .div {     height: 500px;   } </style> <!-- 创建图表容器 --> <div class="container">   <div id="mountNode1"></div>   <div id="mountNode2"></div>   <div id="mountNode3"></div> </div>
<script>   var data = [     {       Species: "I. setosa",       type: "SepalLength",       value: 5.1,       bin: [4.3, 4.8, 5, 5.2, 5.8],     },     {       Species: "I. setosa",       type: "SepalWidth",       value: 3.5,       bin: [2.3, 3.2, 3.4, 3.7, 4.4],     },     {       Species: "I. setosa",       type: "PetalLength",       value: 1.4,       bin: [1, 1.4, 1.5, 1.6, 1.9],     },     {       Species: "I. setosa",       type: "PetalWidth",       value: 0.2,       bin: [0.1, 0.2, 0.2, 0.3, 0.6],     },     {       Species: "I. versicolor",       type: "SepalLength",       value: 7,       bin: [4.9, 5.6, 5.9, 6.3, 7],     },     {       Species: "I. versicolor",       type: "SepalWidth",       value: 3.2,       bin: [2, 2.5, 2.8, 3, 3.4],     },     {       Species: "I. versicolor",       type: "PetalLength",       value: 4.7,       bin: [3, 4, 4.35, 4.6, 5.1],     },     {       Species: "I. versicolor",       type: "PetalWidth",       value: 1.4,       bin: [1, 1.2, 1.3, 1.5, 1.8],     },     {       Species: "I. virginica",       type: "SepalLength",       value: 6.3,       bin: [4.9, 6.2, 6.5, 6.9, 7.9],     },     {       Species: "I. virginica",       type: "SepalWidth",       value: 3.3,       bin: [2.2, 2.8, 3, 3.2, 3.8],     },     {       Species: "I. virginica",       type: "PetalLength",       value: 6,       bin: [4.5, 5.1, 5.55, 5.9, 6.9],     },     {       Species: "I. virginica",       type: "PetalWidth",       value: 2.5,       bin: [1.4, 1.8, 2, 2.3, 2.5],     },   ];   var newData = [];   for (let i in data) {     for (let j in data[i]["bin"]) {       newData.push({         Species: data[i]["Species"],         type: data[i]["type"],         value: data[i]["value"],         bin: data[i]["bin"][j],       });     }   }   var chart = new G2.Chart({     theme: "classic",     container: "mountNode1",   });   chart.point().data(newData).transform({ type: "jitter" }).encode("y", "bin").encode("x", "type").encode("color", "Species").encode("series", "Species").scale("color", { type: "ordinal" });   chart.render(); </script>
<script>   var chart = new G2.Chart({     theme: "classic",     container: "mountNode2",   });   chart     .box()     .data(data)     .encode("y", "bin")     .encode("x", "type")     .encode("series", "Species")     .encode("color", "Species")     .scale("color", { type: "ordinal" })     .tooltip([       { name: "min", channel: "y" },       { name: "q1", channel: "y1" },       { name: "q2", channel: "y2" },       { name: "q3", channel: "y3" },       { name: "max", channel: "y4" },     ]);   chart.render(); </script> <script>   var newData = [];   for (let i in data) {     newData.push({       Species: data[i]["Species"],       type: data[i]["type"],       value: data[i]["value"],     });   }   var chart = new G2.Chart({     theme: "classic",     container: "mountNode3",   });   console.log(newData);   // chart.interval().data(newData).transform({ type: "dodgeX" }).encode("y", "value").encode("x", "type").encode("color", "Species").scale("color", { type: "ordinal" });   chart.interval().data(newData).encode("y", "value").encode("x", "type").encode("color", "Species").encode("series", "Species").scale("color", { type: "ordinal" });   chart.render(); </script>

  

  因为要实现下面的需求,特意去研究了下g2,记录下

箱型图带扰动点,想要实现的效果示例如下

  

   自从有需要在箱型图上添加扰动点这个需要之后,一直非常的纠结,好不容易找到了plotly.js这个组件,其箱型图自带可以添加所有扰动点,且不需要计算Q1这些值,非常强大,奈何其底层技术基于D3使用SVG,对canvas和webgl等适合大数据量的技术支持不好,导致了数据量大了之后页面卡顿非常,体验非常不好。然后就继续寻求其它的组件,然后就找到了支持扰动图的g2,可以选择使用SVG、canvas、webgl渲染,默认使用canvas,可以支持大数据量。看过文档和大量示例后发现g2非常灵活,实现了散点抖动图,也可以层叠加的方式叠加箱型图 。然散点图不能分组单独显示,且抖动图的x轴位置随机,每次刷新页面图形都会变化,还是无法实现需要的效果。

标签:bin,g2,data,散点图,value,柱形图,encode,type,Species
From: https://www.cnblogs.com/caroline2016/p/17292935.html

相关文章

  • python安装g2opy与pagolin踩坑记录
    0x00.前言本文是在python环境下跑slam时配置环境的一点记录,感谢代码作者uoip的贡献项目代码:g2opy:https://github.com/uoip/g2opypangolin:https://github.com/uoip/pangolin0x01.安装笔者的环境是使用anaconda搭建的虚拟环境,由于一开始没有激活虚拟环境导致踩坑,之后虽然......
  • origin 柱形图设置横轴为文字
    1、双击横轴,弹出属性设置窗口: 设置好这里即可,然后apply,ok  ......
  • Java:如何在PowerPoint幻灯片中创建散点图
    散点图是通过两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。散点图将序列显示为一组点,值由点在图表中的位置表示,类别由图表中的不同标记表示,通常用于比较跨类别的聚合数据。本文将为您介如何通过Java代码在PowerPoint幻灯片中创建......
  • Codeforces Round 859 (Div. 4) ABCDE(交互题)FG1G2
    EFG1G2质量还挺好的A.PlusorMinushttps://codeforces.com/contest/1807/problem/A题目大意:给定a,b,c,问我们是a+b==c还是a-b==c?把正确的符号输出。input1112332129-7347112110336991899019-81910output+--++-++--+......
  • Java:如何在PowerPoint幻灯片中创建散点图
    散点图是通过两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。散点图将序列显示为一组点,值由点在图表中的位置表示,类别由图表中的不同标记表示,通常用于比较跨类别的聚合数据。本文将为您介如何通过Java代码在PowerPoint幻灯片中创......
  • 瑞萨G2UL工业核心板内存测试,您想了解的内容全都有
    1. 测试对象HD-G2UL-EVM基于HD-G2UL-CORE工业级核心板设计,一路千兆网口、一路CAN-bus、3路TTL UART、LCD、WiFi、CSI 摄像头接口等,接口丰富,适用于工业现场应用需求,亦方便......
  • [BZOJ3331][BeiJing2013]压力
    #include<iostream>#include<cmath>#include<algorithm>#include<cstring>#include<cstdio>#include<vector>usingnamespacestd;vector<int>temp[5211314],b......
  • MyBlog2:初识N皇后
    初识N皇后前置知识:如图在9*9的棋盘正中央有一颗皇后棋子。颜色加深位置代表该皇后的攻击范围,可以发现攻击范围是该皇后所在的行,所在的列,以及以皇后为中心的主对角线和次......
  • Python小练习:绘制散点图并添加基线
    Python小练习:绘制散点图并添加基线作者:凯鲁嘎吉-博客园 http://www.cnblogs.com/kailugaji/1. plot_scatter_test.py1#-*-coding:utf-8-*-2#Author:凯鲁......
  • 【230320-3】已知xyz+y+z=12,则log4x+log2x+log2z的最大值为?
    ......