Echarts 里的 散点图

var Token = function (token, expireTime) {
    var _token, _expireTime;


    this.setToken = function (token) {
        _token = token;
    }

    this.getToken = function () {
        if (_expireTime < new Date())
            return undefined;

        return _token;
    }

    this.setExpire = function (expireTime) {
        _expireTime = expireTime;
    }

    this.getExpire = function () {
        return _expireTime;
    }

    this.setToken(token);
    this.setExpire(expireTime);
}

Token.prototype = {
    constructor: Token,

    load: function () {
        var localSaved = localStorage.getItem('token');
        console.log('localsaved:' + localSaved);
        if (localSaved != '') {
            try {
                var localSavedToken = JSON.parse(localSaved);

                this.setToken(localSavedToken.token);
                this.setExpire(localSavedToken.expireTime);
            } catch (ex) { console.log(ex); }
        }
    },

    save: function () {
        var tokenString = JSON.stringify({ "token": this.getToken(), "expireTime": this.getExpire() });
        localStorage.setItem('token', tokenString);
    },

    isReady: function () {
        var acccessToken = this.getToken();

        return typeof (tokenCode) != 'undefined';
    },

    delay: function (ms) {
        return new Promise((resolve, reject) => setTimeout(resolve, ms));
    },

    requestToken: function (identity, password) {
        return SendRequest("POST", "/api/token",
            {
                "Identity": identity,
                "Password": password
            });
    },

    showToken: function () {
        console.log('showToken:' + this.getToken());
    },

    /*输出散点图*/
    renderScatter: function (canvasId) {
        if (!document.body.contains(document.getElementById(canvasId)))
            return;

        var scatterDom = document.getElementById(canvasId);
        var keepsScatter = echarts.init(scatterDom);

        keepsScatter.showLoading();

        SendRequest('GET', '/api/reports', undefined, this.getToken())
            .then((response) => {
                var data = JSON.parse(response);
                keeps = data;

                var dates = data.map(function (item) {
                    return item["markTime"].substr(2, 8);
                }).filter(function (item, index, arr) {
                    return arr.indexOf(item, 0) === index;
                }).sort();

                var points = [
                    data
                        .filter(function (item) {
                            return item["stockCode"].startsWith('60');
                        })
                        .map(function (item) {
                            return [
                                item["markTime"].substr(2, 8),
                                item["increase"],
                                item["current"],
                                item["stockCode"],
                                item["fixedClose"],
                                item["negotiableCapital"],
                                item["generalCapital"]
                            ];
                        }),
                    data
                        .filter(function (item) {
                            return item["stockCode"].startsWith('688');
                        })
                        .map(function (item) {
                            return [
                                item["markTime"].substr(2, 8),
                                item["increase"],
                                item["current"],
                                item["stockCode"],
                                item["fixedClose"],
                                item["negotiableCapital"],
                                item["generalCapital"]
                            ];
                        }),
                    data
                        .filter(function (item) {
                            return item["stockCode"].startsWith('000');
                        })
                        .map(function (item) {
                            return [
                                item["markTime"].substr(2, 8),
                                item["increase"],
                                item["current"],
                                item["stockCode"],
                                item["fixedClose"],
                                item["negotiableCapital"],
                                item["generalCapital"]
                            ];
                        }),
                    data
                        .filter(function (item) {
                            return item["stockCode"].startsWith('001') || item["stockCode"].startsWith('002') || item["stockCode"].startsWith('003');
                        })
                        .map(function (item) {
                            return [
                                item["markTime"].substr(2, 8),
                                item["increase"],
                                item["current"],
                                item["stockCode"],
                                item["fixedClose"],
                                item["negotiableCapital"],
                                item["generalCapital"]
                            ];
                        }),
                    data
                        .filter(function (item) {
                            return item["stockCode"].startsWith('30');
                        })
                        .map(function (item) {
                            return [
                                item["markTime"].substr(2, 8),
                                item["increase"],
                                item["current"],
                                item["stockCode"],
                                item["fixedClose"],
                                item["negotiableCapital"],
                                item["generalCapital"]
                            ];
                        })

                ];

                var option = {
                    xAxis: {
                        data: dates,
                        splitLine: { show: false }
                    },
                    yAxis: {
                        splitLine: { show: true },
                        scale: true
                    },
                    tooltip: {
                        position: 'top',
                        formatter: function (params) {
                            return (
                                params.value[3] + '[' + params.value[5].ToCapital() + ']:' +
                                params.value[1].ColorString() + ' <br/> from ' +
                                params.value[4] + ' to ' + params.value[2]
                            );
                        }
                    },
                    dataZoom: [
                        {
                            type: 'slider',
                            show: true,
                            start: 94,
                            end: 100,
                            handleSize: 8
                        },
                        {
                            type: 'inside',
                            start: 94,
                            end: 100
                        },
                        {
                            type: 'slider',
                            show: true,
                            yAxisIndex: 0,
                            filterMode: 'empty',
                            width: 12,
                            height: '70%',
                            handleSize: 8,
                            showDataShadow: false,
                            left: '93%'
                        }
                    ],
                    grid: {
                        left: 40,
                        right: 40
                    },
                    legend: {
                        data: ['沪A[' + points[0].length + ']', '科创板[' + points[1].length + ']', '深A[' + points[2].length + ']', '中小板[' + points[3].length + ']', '创业板[' + points[4].length + ']'],
                        left: 10,
                        top: 10
                    },
                    series: [
                        {
                            name: '沪A[' + points[0].length + ']',
                            data: points[0],
                            type: 'scatter',
                            symbolSize: function (data) {
                                return Math.sqrt(data[5] / 10000000) * 2;
                            },
                            emphasis: {
                                focus: 'self'
                            }
                        },
                        {
                            name: '科创板[' + points[1].length + ']',
                            data: points[1],
                            type: 'scatter',
                            symbolSize: function (data) {
                                return Math.sqrt(data[5] / 10000000) * 2;
                            },
                            emphasis: {
                                focus: 'self'
                            }
                        },
                        {
                            name: '深A[' + points[2].length + ']',
                            data: points[2],
                            type: 'scatter',
                            symbolSize: function (data) {
                                return Math.sqrt(data[5] / 10000000) * 2;
                            },
                            emphasis: {
                                focus: 'self'
                            }
                        },
                        {
                            name: '中小板[' + points[3].length + ']',
                            data: points[3],
                            type: 'scatter',
                            symbolSize: function (data) {
                                return Math.sqrt(data[5] / 10000000) * 2;
                            },
                            emphasis: {
                                focus: 'self'
                            }
                        },
                        {
                            name: '创业板[' + points[4].length + ']',
                            data: points[4],
                            type: 'scatter',
                            symbolSize: function (data) {
                                return Math.sqrt(data[5] / 10000000) * 2;
                            },
                            emphasis: {
                                focus: 'self'
                            }
                        }
                    ]
                };

                keepsScatter.hideLoading();

                if (option && typeof option === 'object') {
                    keepsScatter.setOption(option);
                    if (currentCode == '' && keeps.length > 0) {
                        var index = 1;
                        currentCode = keeps[0].stockCode;
                        showOne();
                    }

                    keepsScatter.on('selectchanged', function (params) {
                        var seriesIndex = params['fromActionPayload']['seriesIndex'];
                        var dataIndex = params['fromActionPayload']['dataIndexInside'];

                        var node = points[seriesIndex][dataIndex];

                        currentCode = node[3];
                        showOne();

                    });

                    window.addEventListener("resize", resizeMe);
                }

            });

        function resizeMe() {
            keepsScatter.resize();
        }
    },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Echarts是一款强大的数据可视化工具,可以通过地图散点图来显示文字信息。下面我将介绍一种方法来实现这个功能。 首先,我们需要准备好要展示的数据。这些数据通常包括地理位置的经纬度坐标和相应的文字信息。可以将这些数据保存在一个数组中,每个元素包含一个地理位置的坐标和相应的文字信息。 接下来,我们需要创建一个Echarts实例,并配置地图的相关参数。其中,地图相关参数包括地图的类型、缩放级别、中心位置等。可以使用Echart官方提供的地图插件,或者自定义地图。 然后,我们将数据中的每个元素生成一个散点图的配置项。配置项中包括散点的坐标位置、文字内容等。可以通过循环遍历数据数组,逐个生成配置项,并将这些配置项保存到一个新的数组中。 最后,我们将这个新的数组作为数据源,通过Echarts的setOption方法,将数据源配置给Echarts实例。这样,就可以在地图上显示散点图和相对应的文字信息了。 需要注意的是,为了保证文字信息在地图上的显示效果,可以通过调整散点的大小和透明度来避免文字之间的重叠。同时,可以使用Echarts提供的格式化函数,对文字信息进行样式设置,如字体大小、颜色等。 综上所述,通过以上步骤,我们可以利用Echarts地图散点图展示文字信息。这种方式可以使得地图更加直观、生动,同时能够提供更多的信息展示。 ### 回答2: Echarts是一个非常流行的数据可视化库,可以用来展示各种类型的图表,包括地图和散点图。要在Echarts地图散点图中显示文字,可以按照以下步骤操作。 1. 准备数据:首先,需要准备包含散点的数据和需要显示的文字标签数据。散点的数据通常是包含经度和纬度的坐标数据,而文字标签数据则是与每个散点相关联的文字。 2. 配置Echarts地图散点图:将Echarts相关的JavaScript库导入到HTML文件中,并创建一个div元素作为容器来显示地图散点图。然后,通过配置Echarts的option属性来定义地图散点图的各种属性,例如地图类型、散点图的颜色、大小等。 3. 图表数据绑定:将准备好的散点数据和文字标签数据绑定到Echarts的option属性中。可以使用Echarts提供的series属性来定义散点图的数据,以及使用label属性来定义每个散点的文字标签。 4. 显示文字标签:为了在散点图上显示文字标签,可以在series属性中配置label属性,并设置show属性为 true,以及设置position属性为 'inside' 或 'top' 来决定文字标签的位置。还可以通过设置其他属性来调整文字标签的样式,例如颜色、字体大小等。 5. 渲染图表:最后,将配置好的option属性作为参数传递给Echarts的init方法,并将其绑定到之前创建的div容器上,从而渲染出地图散点图。 通过以上步骤,就可以在Echarts地图散点图上成功显示文字标签。可以根据实际需求来调整文字标签的样式和位置,以满足自己的展示要求。 ### 回答3: Echarts地图散点图可以通过使用标注功能来显示文字信息。标注功能是一种在地图上显示文本或图标的方法,可以通过给地图上的散点添加标注来实现显示文字。 要在Echarts地图散点图上显示文字,需要按照以下步骤操作: 1. 定义散点数据:首先,需要定义散点的数据,在数据中包含每个散点的经纬度坐标和需要显示的文字信息。 2. 配置标注:在Echarts配置项中,需要添加一个标注项,指定要显示的文字信息。可以通过设置标注项的position属性来指定每个标注的坐标位置。可以选择将标注的文字放置在散点的上方、下方、左侧或右侧等位置。 3. 添加标注样式:还可以对标注的样式进行调整,例如字体大小、颜色、边框样式等。可以根据具体需求,调整标注的样式以便更好地展示文字信息。 4. 显示标注:最后,将配置好的散点数据和标注项应用到Echarts地图上,即可实现地图散点图上显示文字的效果。 通过以上步骤,可以在Echarts地图散点图上显示文字信息。这样,在地图上的每个散点对应的位置都会显示指定的文字内容,帮助用户更直观地了解地理位置的相关信息。同时,可以通过调整标注的样式,使标注更加美观和易读,提升用户的体验感。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值