• echarts 折线图


    import { Pieces } from "../@share/pieces";
    
    /**
     * 类项目中的xy折线图
     * demo https://echarts.apache.org/examples/zh/editor.html?c=dynamic-data2
     * 文档 https://echarts.apache.org/zh/option.html#title
     */
    export class LineChartXy {
        data = [];
        seconds = 0;
    
        constructor(myChart) {
            // 绘制图表,初始化绘图数据
            this.initData();
            myChart.setOption(this.getOptions(this.data[0], this.data[1]));
            // 随机数据
            this.setDynamicData(myChart);
        }
    
        /**
         * 初始化数据
         */
        initData() {
            let x = Pieces.getRandomNumberByCount(1, 100, 0, 50);
            this.data = [
                [[x, this.seconds]],
                [[this.seconds, x]],
            ];
        }
    
        /**
         * 设置数据更新展示
         * @param myChart
         */
        setDynamicData(myChart) {
            let self = this;
            // 设置数据显示
            setInterval(function () {
                let x = Pieces.getRandomNumberByCount(1, 100, 0, 50);
                self.seconds++
                if (self.seconds >= 60) {
                    self.seconds = 0;
                }
                self.data[0].push([x, self.seconds]);
                self.data[1].push([self.seconds, x]);
                myChart.setOption({
                    series: [
                        {
                            data: self.data[0],
                        },
                        {
                            data: self.data[1],
                        },
                    ]
                });
            }, 1000);
        }
    
        /**
         * 配置项
         * @param data1
         * @param data2
         * @returns Object
         */
        getOptions(data1, data2) {
            return {
                xAxis: {
                    type: 'value',
                    min: 0,
                    max: 100,
                    axisLabel: {
                        show: true,
                    },
                    interval: 25, // 强制设置坐标轴分割间隔。
                },
                yAxis: {
                    type: 'value',
                    min: 0,
                    max: 100,
                    boundaryGap: [ 0, '100%' ],
                    splitLine: {
                        show: true,
                    },
                    splitNumber: 4, // 坐标轴的分割段数,需要注意的是这个分割段数只是个预估值
                    interval: 25, // 强制设置坐标轴分割间隔。
                    axisLine: {
                        show: true,
                    },
                    axisTick: { // 坐标轴刻度相关设置。
                        show: true,
                        inside: false, // 坐标轴刻度是否朝内,默认朝外。
                        length: 5, // 坐标轴刻度的长度。
                    },
                },
                tooltip: {
                    trigger: 'axis',
                    formatter: function (params) {
                        return '(' + params[0].value[0] + ',' + params[0].value[1] + ')';
                    },
                    renderMode: 'richText',
                    padding: [ 5, 10 ],
                },
                legend: {
                  show: true,
                },
                series: [
                    {
                        name: '1',
                        type: 'line',
                        showSymbol: false,
                        data: data1
                    },
                    {
                        name: '2',
                        type: 'line',
                        showSymbol: false,
                        data: data2
                    },
                ]
            };
        }
    }
  • 相关阅读:
    uoj207 共价大爷游长沙 子树信息 LCT + 随机化 + 路径覆盖
    bzoj4542 [Hnoi2016]大数 莫队+同余
    bzoj2959: 长跑 LCT+并查集+边双联通
    bzoj4819 [Sdoi2017]新生舞会 分数规划+最大费用最大流
    bzoj5020 & loj2289 [THUWC 2017]在美妙的数学王国中畅游 LCT + 泰勒展开
    bzoj1195 [HNOI2006]最短母串 AC 自动机+状压+bfs
    hdu 多校 2019 选做
    bzoj3510 首都 LCT 维护子树信息+树的重心
    bzoj4011 [HNOI2015]落忆枫音 拓扑排序+DP
    bzoj3091 城市旅行 LCT + 区间合并
  • 原文地址:https://www.cnblogs.com/guofan/p/16261865.html
Copyright © 2020-2023  润新知