美文网首页
BizCharts 双柱图 加折线统计图

BizCharts 双柱图 加折线统计图

作者: Asuler | 来源:发表于2019-12-19 16:04 被阅读0次

双柱图,需要对数据进行处理


image.png

要是想竖着的,就把 <Coord transpose scale={[1, -1]} /> 删掉就行,

这个是双柱图的数据,折线图的数据也很简单,按照每个横坐标加一个字段对应值就好了
比如说
{
label:"Tusday",
series1:1800,
series2:1200,
series3_line:4000
}

随便加个属性叫series3_line,那么按照数据上的每个横坐标上都加个,即周一至周五都要加

然后加个

const scale = {
     series3_line: {
        min: 0,
        type: 'linear',
      },
     series2: {
        min: 0,
      },
    series1: {
        min: 0,
      },
    };

针对每一个字段,都设置个min:0,这样子 纵坐标就是从0开始的,这个scale ,加到最外面的Chart组件上就行

现在双柱图有了,再加个折线图

 <Geom
            type="path"
            position="label*series3_line"
            size={2}
            color="#fff" //影响tooltip上的marker颜色
            style={{
              stroke: '#fff',
              lineWidth: 1,
            }}
    />

这里我选择type=path,因为type=line的话,有时候好像数据不太好的时候,就变成虚线了,

加了个折线图,
但是Legend(图例)上并没有我们折线图,
怎么加都加不上去

只能手动加了
找了一位大佬的方案
https://www.cnblogs.com/hill-foryou/p/10571386.html

image.png

custom一定要加上,这样子才允许items自定义,
自定义了后,又有问题了,点击图例,对应的图表没反应

那么又得给Legend 手动加上onClick事件,这里我参照着大佬的代码写

image.png

图上series_line3 打错了,应该是 series3_line,反正对应的就是那个数据

onClick={ev => {
              const item = ev.item;
              const value = item.value;
              const checked = ev.checked;
              const geoms = this.chartIns.getAllGeoms();
              console.log('geoms', geoms);
              for (let i = 0; i < geoms.length; i++) {
                const geom = geoms[i];
                if (geom.getYScale().field === value && value === 'series3_line') {
                  if (checked) {
                    geom.show();
                  } else {
                    geom.hide();
                  }
                } else if (
                  geom.getYScale().field === 'value' &&
                  value !== 'series3_line'
                ) {
                  geom.getShapes().map(shape => {
                    if (shape._cfg.origin._origin.type == value) {
                      shape._cfg.visible = !shape._cfg.visible;
                    }
                    shape.get('canvas').draw();
                    return shape;
                  });
                }
  
                // const g_shapes = geom.get('labelContainer');
                // debugger;   
                // let labels = g_shapes._cfg.labelsGroup._cfg.children;
                // labels.map(label => {
                //   if (checked) {
                //     if (label._id.includes(value)) {
                //       label._cfg.visible = true;
                //     }
                //   } else {
                //     if (label._id.includes(value)) {
                //       label._cfg.visible = false;
                //     }
                //   }
                // });
              }
            }}

相关文章

  • BizCharts 双柱图 加折线统计图

    双柱图,需要对数据进行处理 要是想竖着的,就把

  • ant design pro chart的使用

    BizCharts 一、柱状图 柱状图效果: 代码: 二、折线图 折线图效果image.png 代码

  • 双折线统计图

    记录一次自定义view(需求太奇葩没得办法),合适的同学可以借鉴下。(大佬请绕道) 8多说看效果 上代码 代码还需...

  • iOS 超级好用的折线统计图,柱状统计图

    XXChartView 好用的统计图,折线统计图,柱状统计图 觉得好用记得在github上给点星星哦 https:...

  • 3、象形统计图

    象形统计图的目的主要是为了使统计数据更为直观、通俗易懂,常见的象形统计图有:条形图、扇形统计图、折线统计图、象形图...

  • MisShop统计图用法

    一、MisShop统计图概述说起统计图,我们首先想到的就是柱形图、折线图和饼图。MisShop的统计图除了支持这几...

  • 折线统计图

    演示从条形统计图变成折线统计图的变化过程,想一想这些点、线表示什么?

  • 吴正宪《复式折线统计图》课堂实录20210116

    《复式折线统计图》 课堂实录 授课:吴正宪...

  • 2022-06-21

    今天的折线统计图练习,学生对于折线统计图纵轴下面的曲线学的很有兴趣,效果也比较好。 当学生发现纵轴的格子不够标数据...

  • 数学与世界

    今天,我们上单式折线统计图,课很简单也有点枯燥,学生也容易掌握。还能干些什么呢? 这节课的重点应该是绘制折线统计图...

网友评论

      本文标题:BizCharts 双柱图 加折线统计图

      本文链接:https://www.haomeiwen.com/subject/ymomnctx.html