Echarts-x中MarkLine颜色和legend颜色不对应

发布于 2022-03-09 12:36:12 字数 4664 浏览 828 评论 1

如下图,我没有设置颜色,那么echarts应该使用默认颜色。可是这里颜色却对应不上,比如图中橘色对应的是淡蓝色。即使在option中设置color,颜色还是不对应。请问有谁遇到过这种问题或者可以哪位高手帮我解决这个问题吗?

代码如下:

var data = "my json data";

                var devices = [];
                $.each(data.points, function (key, value) {
                    devices.push({
                        itemStyle: { 
                    			normal: {
                        		color: 'red'
                    			}
                				},
                        geoCoord: value
                    })
                });

                //types
                var types = [];
                $.each(data.lineTypes, function (key, value) {
                    types.push(key);;
                });

                //lines
                var lineGroupByScanType = {};

                data.lines.forEach(function (line) {
                    var typeName = line.type_name;
                    if (!lineGroupByScanType[typeName]) {
                        lineGroupByScanType[typeName] = [];
                    }
                    lineGroupByScanType[typeName].push(line);
                });

                var opts = {
                    color: ['#ff7f50', '#87cefa', '#da70d6', '#32cd32', '#28c6b9', '#84e6f1'],//设置和不设置color结果都不对,我觉得设置的时候不对是应为series[0]不是markline,不需要显示legend
                    legend: {
                        show: true,
                        data: types.map(function (item) {
                            return item;
                        }),
                        selected: {},
                        x: 'left',
                        orient: 'vertical',
                        textStyle: {
                            color: 'auto'
                        }
                    },
                    tooltip: {
                        formatter: '{b}'
                    },
                    series: [
                        {
                            type: 'map3d',
                            mapType: 'world',
                            baseLayer: {
                                backgroundColor: '',
                                backgroundImage: '/resources/img/earth.jpg'
                            },
                            itemStyle: {
                                normal: {
                                    borderWidth: 0.5,
                                    borderColor: 'yellow',
                                    areaStyle: {
                                        color: 'rgba(0, 0, 0, 0)'
                                    }
                                }
                            },
                            name: 'points',
                            markPoint: {
                                effect: {
                                    show: true
                                },
                                large: true,
                                symbolSize: 5,
                                data: devices
                            }
                        }]
                };

                types.forEach(function (item) {
                    var lines = lineGroupByScanType[item];
                    if (lines) {
                        opts.series.push({
                            type: 'map3d',
                            name: item,
                            markLine: {
                                smooth: true,
                                effect: {
                                    show: true,
                                    scaleSize: 3
                                },
                                //large: true,
                                itemStyle: {
                                    normal: {
                                        borderWidth: 2,
                                        width: 3,
                                        opacity: 1
                                    }
                                },
                                data: lines.map(function (line) {
                                    return [{
                                        geoCoord: line.startGeo 
                                    }, {
                                        geoCoord: line.endGeo 
                                    }]
                                })
                            }
                        });
                    }
                });
                chart.setOption(opts);
                chart.hideLoading();



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文