echarts散点图(象限图)设置不同的颜色

如图所示:

java 复制代码
<template>
    <div ref="sdtcmijy" :style="{height:scrollerHeight}"></div>
</template>
<script>
import {getXxt} from './../requestAPI.js'

export default {
    data(){
        return {
            params:{},
            seriesData:[],
            xmin:0,
            scrollerHeight: document.body.clientHeight - 170 + "px",
        }
    },
    methods:{
        reset(){
            this.seriesData=[];
        },
        init(params){
            this.reset();
            this.params=params;
            this.search();
        },  
        search(){
            getXxt(this.params).then(res=>{
                if(res.status===200){
                    let data=res.data.list.list;
                    this.xmin=res.data.xmin;
                    console.log(this.xmin)
                    if(data.length>0){
                        data.forEach(item => {
                            let obj=[item.fcmi,item.fybjy];
                            let val = { name: item.name, value: obj };
                            this.seriesData.push(val);
                        });
                        this.seriesData = this.seriesData.map(d => ({
                            ...d,
                            itemStyle: {
                               
                                color: this.getAreaPointColor(d.value)
                            }
                        }))
                       
                    }
                     this.initCharts();
                    
                }
            });
        },
        getAreaPointColor (value) {
            console.log(value)
            let [x, y] = value
            if(x >= this.xmin && y >= 0){
                return '#32CD32	'
            }else if(x < this.xmin && y >= 0){
                
                return '#3583FF'
            }else if(x < this.xmin && y < 0){
                return '#FF0000	'
            }else if(x >= this.xmin && y < 0){
                return '#FF7F24'
            }
            
        },
        initCharts(){
            let that=this;
            let chartDom = this.$refs.sdtcmijy;
            let myChart = this.$echarts.init(chartDom);
            let option;

            option = {
                toolbox: {
                feature: {
                    saveAsImage: {},
                },
                },
                tooltip: {
                    position: "top",
                    formatter: "名称: {b}<br />" + "数值" + ": {c}",
                    },
            xAxis: {
                name:"x轴",
                type:'value',
                scale: true,
                min: function (value) {
                    if (Math.abs(value.min) > Math.abs(value.max)) {
                    return Math.floor(-Math.abs(value.min));
                    } else {
                    return Math.floor(-value.max);
                    }
                },
                max:function (value) {
                    if (Math.abs(value.min) > Math.abs(value.max)) {
                    return Math.ceil((that.xmin-(Math.floor(-Math.abs(value.min))))-(Math.ceil(Math.abs(value.min))-that.xmin)+Math.abs(value.min))
                    ;
                    } else {
                    return Math.ceil((that.xmin-(Math.floor(-value.max)))-(Math.ceil(value.max)-that.xmin)+value.max)
                    ;
                    }
                },
            },
            yAxis: {
                name:"y轴",
                type:'value',
                min: function (value) {
                    if (Math.abs(value.min) > Math.abs(value.max)) {
                    return Math.floor(-Math.abs(value.min));
                    } else {
                    return Math.floor(-value.max);
                    }
                },
                max: function (value) {
                    if (Math.abs(value.min) > Math.abs(value.max)) {
                    return Math.ceil(Math.abs(value.min));
                    } else {
                    return Math.ceil(value.max);
                    }
                },
                axisLine: {
                    lineStyle: {
                        color: '#E8E8E8', // 设置坐标轴颜色
                    }
                },
                axisLabel:{
                    color:'#000',
                    
                },
                nameTextStyle:{
                    color:'#000',
                }
            },
            dataZoom: [
          {
            //滚动条
            bottom: 10,
            id: "dataZoomX",
            type: "slider",
            xAxisIndex: [0],
            filterMode: "filter",
            start: 0,
            end: 100,
          },
          {
            //滚动条
            left: 0,
            id: "dataZoomY",
            type: "slider",
            yAxisIndex: [0],
            filterMode: "filter",
            start: 0,
            end: 100,
          },
        ],
            series: [
                {
                name: "名称",
                symbolSize: 20,
                data: this.seriesData,
                type: 'scatter',
                markLine: {
                    label:{
                        show:true,
                        position:'insideStartTop'
                    },
                    symbol:[],
                    lineStyle: {
                            color: '#000',
                            type: "solid" 
                        },
                data: [
                            {
                                
                                xAxis: this.xmin
                            }
                        ]
                }

                }
            ]
            };

            option && myChart.setOption(option);
        }
    }
}
</script>
<style scoped>

</style>
相关推荐
IT乐手17 分钟前
Claude Code + Qwen 的配置方法
javascript·claude
前端程序媛-Tian38 分钟前
前端 AI 提效实战:从 0 到 1 打造团队专属 AI 代码评审工具
前端·人工智能·ai
支付宝体验科技41 分钟前
Ant Design Pro v6.0.0 发布
前端
T畅N1 小时前
审批流设计器(前端)
前端·elementui·vue·html·流程图·js
AlunYegeer1 小时前
JAVA,以后端的视角理解前端。在全栈的路上迈出第一步。
java·开发语言·前端
IT_陈寒2 小时前
Redis这个内存杀手,差点让我们运维半夜追杀我
前端·人工智能·后端
子兮曰2 小时前
DeepSeek TUI:原生 Rust 打造的终端 AI 编码 Agent
前端·javascript·后端
暗不需求2 小时前
# 深入 React Todos:从零实现一个状态提升与本地持久化的待办应用
javascript·react.js·全栈
DFT计算杂谈2 小时前
自动化脚本一键绘制三元化合物相图
java·运维·服务器·开发语言·前端·python·自动化
子兮曰2 小时前
深入 Superpowers:180k Stars 的开源 AI 编程方法论是如何工作的
前端·javascript·后端