zoukankan      html  css  js  c++  java
  • AntV F2

    一、面积图

    const chart = new F2.Chart({
        id,
        pixelRatio: window.devicePixelRatio,
        padding: 0
      })
      chart.source(data, {
        time: {
          type: 'timeCat',
          tickCount: 3,
          range: [0, 1]
        },
        tem: {
          tickCount: 5,
          min: 0
        }
      })
      chart.axis(false)
      chart.tooltip(false)
      chart.area()
        .position('time*tem')
        .color('l(90) 0:#86CDF3 1:#C1EDFC') // 面积区域背景色渐变
        .style({ fillOpacity: 1 })  // 背景色透明度
        .shape('smooth')
      chart.line()
        .position('time*tem')
        .color('#5592F0')
        .shape('smooth')
      chart.render()
    

    二、折线图

    const chart = new F2.Chart({
          id: 'myChart',
          pixelRatio: window.devicePixelRatio, // 指定分辨率
          plugins: Tooltip,
          // padding: ['auto', 60, 'auto', 50],
           window.innerWidth,
        });
    
        chart.source(this.state.data, {
          date: {
            type: 'timeCat',
            tickCount: 5,
            mask: 'MM-DD',
            range: [0, 1],
          },
          value: {
            tickCount: 4,
          },
        });
    
        // 设置x Y轴
        const lineCfg = {
          lineWidth: 1,
          stroke: this.color.axisLine,
          top: true, // 展示在最上层
        };
        chart.axis('date', {
          label: (text, index, total) => { // 轴线文字标签
            const textCfg = {
              fill: this.color.font,
            };
            // textCfg.text = dateFormat(Number(text), 'MM-dd');
            textCfg.textAlign = 'center';
            if (index === 0) {
              textCfg.textAlign = 'left';
            } else if (index > 0 && index === total - 1) {
              textCfg.textAlign = 'end';
            }
            return textCfg;
          },
          grid: () => {
            return {
              stroke: this.color.axisLine,
              lineDash: [0],
            };
          },
          tickLine: null, // 刻度标识线
          line: lineCfg, // x轴线配置
          labelOffset: 10, // 坐标轴文本距离轴线的距离
        });
        chart.axis('value', {
          label: (text) => {
            let val = `${Number(text).toFixed(1)}%`;
            if (text === '0') {
              val = text;
            }
            return {
              text: val,
              fill: this.color.font,
            };
          },
          line: lineCfg,
          grid: (text) => {
            if (text === '0') { // 栅格线着重显示
              return {
                stroke: this.color.axisLine,
                lineDash: [4],
              };
            }
            return null;
          },
        });
    
        // chart.guide().text({
        //   position: [0, 70],
        //   content: '倍数',
        //   offsetX: -20,
        //   top: true,
        // });
        // chart.guide().text({
        //   position: [14, -10],
        //   content: '(时间)',
        //   top: true,
        //   offsetX: 10
        // });
    
        // 图例
        chart.legend('name', {
          position: 'bottom',
          align: 'center',
          marker: 'square',
          offsetY: -10, // 图例上偏移距离
          itemWidth: 110,
          nameStyle: {
            fill: this.color.font,
          },
          itemFormatter(val) {
            if (val === 'signalData') {
              return '新股智能盈策略';
            }
            return '恒生指数'; // val 为每个图例项的文本值
          },
          clickable: false,
        });
    
        // tooltip
        chart.tooltip({
          showCrosshairs: true, // 是否显示辅助线,点图、路径图、线图、面积图默认展示
          crosshairsStyle: {
            stroke: 'rgba(0, 0, 0, 0.5)',
            lineWidth: 1,
            lineDash: [2], // 虚线
          }, // 配置辅助线的样式
          background: {
            radius: 2,
            fill: '#ccc',
            padding: [6, 10],
          }, // tooltip 内容框的背景样式
          snap: true,
          showItemMarker: false, // 是否展示每条记录项前面的 marker
          custom: true, // 是否自定义 tooltip 提示框
          onHide() {
            const tooltipEl = document.getElementsByClassName('f2-tooltip')[0];
            if (tooltipEl) {
              tooltipEl.style.display = 'none';
            }
          }, // tooltip 隐藏时的回调函数
          onChange(ev) {
            const tooltipEl = document.getElementsByClassName('f2-tooltip')[0];
            // const currentData = _.minBy(ev.items, item => item.y);
            if (tooltipEl) {
              tooltipEl.innerHTML = `<p><span>新股智能盈策略:</span><span>${ev.items[0].value}${ev.items[0].value === '0' ? '' : '%'}</span></p><p><span>恒生指数:</span><span>${ev.items[1].value}${ev.items[1].value === '0' ? '' : '%'}</span></p><p><span>日期:</span><span>${dateFormat(Number(ev.items[0].origin.date), 'yyyy-MM-dd')}</span></p>`;
              tooltipEl.style.display = 'block';
              // tooltipEl.style.left = `${(_this.canvasWrap.offsetLeft + currentData.x) - (tooltipEl.offsetWidth / 2)}px`;
              // tooltipEl.style.top = `${(_this.canvasWrap.offsetTop + currentData.y) - tooltipEl.offsetHeight - 15}px`;
            }
          }, // tooltip 内容发生改变时的回调函数
          crosshairsType: 'xy', // 辅助线的种类
        });
    
        chart.line().position('date*value').color('name', ['#4B95D6', '#fc724c']).shape('smooth')
          .style({ lineWidth: 1 });
        chart.render();
    
  • 相关阅读:
    ajax传参后台接受遇到问题
    使用xUnit为.net core程序进行单元测试(上)
    流程图规范
    知乎上看到的一些生活道理
    Dos常用命令
    c# 操作word写入特殊字符
    vb程序安装时需要在客户端安装MSSOAP30.dll,但注册不上,请问怎么处理
    VB 调用 webservice 出现:WSDLReader:Loading of the WSDL file failed HRESULT=0×80040154: 没有注册类别 解决方案
    The type 'System.Object' is defined in an assembly that is not referenced
    数据库还原失败解决方法
  • 原文地址:https://www.cnblogs.com/SPHmomo/p/12937158.html
Copyright © 2011-2022 走看看