问答

bizcharts 分面图

作者:admin 2021-05-05 我要评论

我是用bizchart 我想实现这个效果 注意看Y轴 相同距离下的值不一样,我希望y轴下方的刻度间居也是一个 200,然后占更大的地方,该怎么处理 怎么处理 源码 import...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

我是用bizchart

我想实现这个效果
image.png

注意看Y轴

image.png

相同距离下的值不一样,我希望y轴下方的刻度间居也是一个 200,然后占更大的地方,该怎么处理 怎么处理

源码

import React from "react";
import {
  Chart,
  Line,
  Point,
  Tooltip,
  Axis,
  Interaction,
  Legend,
  Interval,
  Annotation,
  Facet,
} from "bizcharts";
import DataSet from "@antv/data-set";

export default function FlowBar() {
  const tmp = [];
  const dates = [];

  const ds = new DataSet();
  const dv = ds
    .createView()
    .source(tmp)
    .transform({
      type: "filter",

      callback(row) {
        // 判断某一行是否保留,默认返回true
        return (
          new Date(row.date * 1000).getFullYear() ===
          new Date(dates[0] * 1000).getFullYear()
        );
      },
    });

  const dataT = [
    {
      direction: "up",
      data: 200,
      type: "ipv4",
    },
    {
      direction: "down",
      data: 300,
      type: "ipv4",
    },
    {
      direction: "up",
      data: 500,
      type: "ipv6",
    },
    {
      direction: "down",
      data: 2500,
      type: "ipv6",
    },
  ];
  const scale = {
    type: {
      sync: true,
      tickCount: 11,
    },
    data: {
      range: [0, 0.8],
      // formatter(v) {
      //   return `${v}%`;
      // },
    },
    direction: {
      sync: true,
    },
  };

  return (
    <Chart height={600} data={dataT} scale={scale} autoFit padding={50}>
      <Tooltip />
      <Facet
        type="mirror"
        fields={["direction"]}
        // showTitle={false}
        // transpose
        padding={0}
        eachView={(view, facet) => {
          console.log(view, facet);
          view
            .interval()
            .position("type*data")
            .color("type", (type) => {
   

            if (type === "ipv4") {
              return "red"
            }

            })
            .label("data", { textAlign: "end" });
        }}
      />
    </Chart>
  );
}
###

解决思路应该是 同个Chart用的应该是一个刻度尺
我在文档 Scale 度量 里找到了一个log类型,大概可以实现

image.png

// 新增type和base属性
const scale = {
    data: {
      type: 'log',
      base: 200,
    },
};

不过我觉得不太完美 你可以再去文档里看一下

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • bizcharts 分面图

    bizcharts 分面图

  • C++编译时出现字符串转换错误,求解决

    C++编译时出现字符串转换错误,求解决

  • 请教一下大佬,图一报错的原因是什么?

    请教一下大佬,图一报错的原因是什么?

  • nodejs 使用 sequelize 查 mysql 报错

    nodejs 使用 sequelize 查 mysql 报错

腾讯云代理商
海外云服务器