echarts 画散点图, x周,y周在指定位置标志一下

文章目录

  • [echarts 画散点图, x周,y周在指定位置标志一下](#echarts 画散点图, x周,y周在指定位置标志一下)

echarts 画散点图, x周,y周在指定位置标志一下

示例一

typescript 复制代码
let scatterData = {
   data: [
      [
         [-0.2, -0.6],
         [0.4, 0.3],
         [0.1, 0.4],
         [0.3, 0.5],
         [0.09, 0.1],
         [0.7, 0.3],
         [0.9, 0.4],
         [0.05, 0.8],
         [0.6, 0.7],
         [0.1, 0.3],
      ],
      [
         [-0.3, -0.1],
         [0.7, 0.1],
         [0.4, 0.4],
         [0.5, 0.8],
         [0.05, 0.6],
         [0.1, 0.9],
         [0.9, 0.2],
         [0.08, 0.1],
         [0.5, 0.6],
         [0.1, 0.09],
      ],
      [
         [1,1]
      ]
   ],
   title: ["normal", 'default'],
   x: 0.6,
   y: 0.4,
}

let colorList = [
   "#b33ecb",
   "#ffbe24",
   "#4727f1",
   "#fb3978",
   "#f3954f",
   "#1b3f89",
   "#036ceb",
]

let series = [
   {
      type: "line",
      markLine: {
         silent: true,
         symbol: "none",
         lineStyle: {
            normal: {
               type: "solid",
               color: "#785a2d",
            },
         },
         label: {
            show: true,
            position: "start",
            color: "#fff",
            backgroundColor: "#ff751a",
            padding: [2, 4],
         },
         data: [
            {
               yAxis: scatterData.y, //y轴开始位置
            },
            {
               xAxis: scatterData.x,  //x轴开始位置
            },
         ],
      },
   },
];

scatterData.data.forEach((v, i) => {
   series.push({
      name: scatterData.title[i],
      type: "scatter",
      data: v,
   });
});

option = {
   backgroundColor: '#000',
   color: colorList,
   grid: {
      top: "12%",
      left: "8%",
      right: "12%",
      bottom: "15%",
   },
   tooltip: {
      trigger: "axis",
      axisPointer: {
         type: "cross",
      },
      formatter: (params) => {
         return `<div>
            <span style="color:#fff;display: inline-block;width: 86px;">物资费占比:</span>
            <span style="color:#fff">${params[0].data[0]}</span>
            <br/>
            <span style="color:#fff;display: inline-block;width: 86px;">服务费占比:</span>
            <span style="color:#fff">${params[0].data[1]}</span>
            </div>`;
      },
   },
   legend: {
      top: '8%',
      itemWidth: 8,
      data: scatterData.title,
      orient: "horizontal",
      x: "center", //可设定图例在左、右、居中
      y: "top", //可设定图例在上、下、居中
      padding: [0, 0, 25, 0],
      textStyle: {
         color: "#fff",
      },
   },
   xAxis: {
      name: '物资费占比',
      axisLabel: {
         show: true,
         textStyle: {
            color: "#fff",
         },
      },
      axisLine: {
         show: true,
         lineStyle: {
            type: 'solid',
            color: '#2D4377',
            opacity: 1
         }
      },
      splitLine: {
         show: false,
      },
   },
   yAxis: {
      name: '服务费占比',

      axisLabel: {
         show: true,
         textStyle: {
            color: "#fff",
         },
      },
      axisLine: {
         show: true,
         lineStyle: {
            type: 'solid',
            color: '#2D4377',
            opacity: 1
         }
      },
      splitLine: {
         show: false,
      },
   },
   series: series,
};

例子二

typescript 复制代码
option = {
                    backgroundColor:'#fff',
                    grid: {
                        top:'25%',
                        left: '7%',
                        right: '15%',
                        bottom: '7%',
                        containLabel: true
                    },
                    tooltip: {
                        trigger: 'axis',
                        textStyle: {
                            color: '#FFF',
                            fontSize:12,
                            // fontFamily: "PingFangSc-Regular, sans-serif",
                            background: 'rgba(255,255,255,0.1)',
                            lineHeight:20
                        },
                        axisPointer: {
                            type: 'shadow',
                            background: 'rgba(255,255,255,0.1)',
                        },
                        position: 'inside',
                    },
                    legend: {
                        top: 0,
                        left:'center',
                        itemWidth: 6, //矩形宽度
                        itemHeight: 6, //矩形宽度
                        data:[
                        {name: '首客订单率目标',icon: 'line'},
                        {name: '客流目标达成'},
                        {name: '客流目标未达成'}
                    ],
                    },
                    xAxis: {
                        axisLine: { //  改变x轴颜色
                            show:true,
                            lineStyle: {
                                color: '#F0EFEF',
                                type:'solid'
                            }
                        },
                    axisTick: {
                            show: false
                        },
                        axisLabel: { //  改变x轴字体颜色和大小
                            textStyle: {
                                color: "#A3A9AF",
                                fontSize: 12
                            },
                        },
                        splitLine: {
                            show:false
                        },
                    },
                    yAxis: {
                        // name:'%',
                        typpe:'dashed',
                        nameTextStyle: {
                            color: '#A3A9AF',
                            padding: [0, 25, 0, 0]
                        },
                        axisLine: { //  改变y轴颜色
                            lineStyle: {
                                color: '#F0EFEF'
                            }
                        },
                        axisTick: {
                            show: false
                        },
                        axisLabel: { //  改变y轴字体颜色和大小
                            //formatter: '{value} m³ ', //  给y轴添加单位
                            textStyle: {
                                color: "#A3A9AF",
                                fontSize: 12
                            },
                        },
                        splitLine: {
                            show:true,
                            lineStyle: {
                                color: "#E9E9E9",
                                type:'dashed'
                            }
                        },
                    },
                    series: [
                       {
                        name: '客流目标达成',
                        type: 'scatter',
                        itemStyle: {
                            color: "#77C620",
                        },
                        symbolSize: 6,
                        data: [[10.0, 8.04],
                        [8.0, 6.95],
                        [13.0, 7.58],
                        [9.0, 8.81],
                        [11.0, 8.33],
                        [14.0, 9.96],
                        [6.0, 7.24],
                        [4.0, 4.26],
                        [12.0, 10.84],
                        [7.0, 4.82],
                        [5.0, 5.68]
],
                    },
                    {
                        name: '客流目标未达成',
                        type: 'scatter',
                        itemStyle: {
                            color: "#F03024",
                        },
                        symbolSize: 6,
                        data: [
                        [9.0, 5.04],
                        [11.0, 7.95],
                        [12.0, 8.58],
                        [5.0, 11.81],
                        [7.0, 12.33],
                        [11.0, 7.96],
                        [7.0, 9.24],
                        [6.0, 8.26],
                        [10.0, 11.84],
                        [7.0, 3.82],
                        [6.0, 4.68]
                    ]
                    },
                    {
                        name: '',
                        type: 'line',
                            markLine: {
                                symbol: 'none',
                                silent: true,
                                lineStyle: {
                                    type: 'solid',
                                    width: 1,
                                    color: '#F03024',
                                },
                                label: {
                                    // show: false
                                    color:'#A3A9AF',
                                    distance: [-25,8,0,0],
                                    padding:[-15,2,2,3],
                                    formatter: function(params) {
                                        return params.name;
                                    }
                                },
                                data:[{name:'日均累客流量',yAxis:5},{name:'日均累订单量',xAxis:5}]
                            }
                        }
                    ]
                }

示例三

typescript 复制代码
var data = [
    [
        [28604, 77, 252847810, '农、林、牧、渔业', '1']
    ],
    [
        [31163, 77.4, 252847810, '采矿业', '2'],
        [1516, 68, 252847810, '制造业', '2'],
        [13670, 74.7, 252847810, '电力、热力、燃气及水生产和供应业', '2'],
        [28599, 75, 252847810, '建筑业', '2']
    ],
    [
        [29476, 77.1, 252847810, '批发和零售业', '3'],
        [31476, 75.4, 252847810, '交通运输、仓储和邮政业', '3'],
        [28666, 78.1, 252847810, '住宿和餐饮业', '3'],
        [1777, 57.7, 252847810, '信息传输、软件和信息技术服务业', '3'],
        [29550, 79.1, 252847810, '金融业', '3'],
        [2076, 67.9, 252847810, '房地产业', '3'],
        [12087, 72, 252847810, '租赁和商务服务业', '3'],
        [24021, 75.4, 252847810, '科学研究和技术服务业', '3'],
        [43296, 76.8, 252847810, '水利、环境和公共设施管理业 ', '3'],
        [10088, 70.8, 252847810, '居民服务、修理和其他服务业 ', '3'],
        [19349, 69.6, 252847810, '教育', '3'],
        [10670, 67.3, 252847810, '卫生和社会工作', '3'],
        [26424, 75.7, 252847810, '文化、体育和娱乐业', '3'],
        [37062, 75.4, 252847810, '公共管理、社会保障和社会组织', '3'],
        [37062, 75.4, 252847810, '国际组织', '3']
    ]
];

var dataxAxis = 25000;
var datayAxis = 67.1;
option = {

    title: {
        text: '行业平均存活和活跃度'
    },
    dataZoom: [{
        id: 'dataZoomX',
        type: 'inside',
        xAxisIndex: [0],
        filterMode: 'filter'
    }, {
        id: 'dataZoomy',
        type: 'slider',
        xAxisIndex: [0],
        filterMode: 'empty'
    }],
    xAxis: {
        name: '行业活跃度',
        splitLine: {
            show: true,
            interval: 'auto',
            lineStyle: {
                type: 'dashed'
            }
        }
    },
    yAxis: {
        name: '户均寿命',
        splitLine: {
            show: true,
            interval: 'auto',
            lineStyle: {
                type: 'dashed'
            }
        },
        scale: true
    },
    series: [{
        name: '1',
        data: data[0],
        type: 'scatter',
        symbolSize: function(data) {
            return Math.sqrt(data[2]) / 10e2;
        },
        label: {
            emphasis: {
                show: true,
                formatter: function(param) {
                    return param.data[3];
                },
                position: 'top'
            }
        },
        itemStyle: {
            normal: {
                shadowBlur: 10,
                shadowColor: 'rgba(25, 100, 150, 0.5)',
                shadowOffsetY: 5,
                color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{
                    offset: 0,
                    color: 'rgb(129, 227, 238)'
                }, {
                    offset: 1,
                    color: 'rgb(25, 183, 207)'
                }]),
                borderColor: 'rgba(25, 183, 207, 0.5)',
                borderWidth: 7
            }
        },
        markLine: {
            lineStyle: {
                normal: {
                    type: 'dotted'
                }
            },
            data: [{
                xAxis: dataxAxis
            }, {
                yAxis: datayAxis
            }]
        }
    }, {
        name: '2',
        data: data[1],
        type: 'scatter',
        symbolSize: function(data) {
            return Math.sqrt(data[2]) / 10e2;
        },
        label: {
            emphasis: {
                show: true,
                formatter: function(param) {
                    return param.data[3];
                },
                position: 'top'
            }
        },
        itemStyle: {
            normal: {
                shadowBlur: 10,
                shadowColor: 'rgba(120, 36, 50, 0.5)',
                shadowOffsetY: 5,
                color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{
                    offset: 0,
                    color: 'rgb(251, 118, 123)'
                }, {
                    offset: 1,
                    color: 'rgb(204, 46, 72)'
                }]),
                borderColor: 'rgba(204, 46, 72, 0.5)',
                borderWidth: 6
            }
        },
        markLine: {
            lineStyle: {
                normal: {
                    type: 'dotted',
                    color: 'bule'
                }
            },
            data: [{
                xAxis: dataxAxis
            }, {
                yAxis: datayAxis
            }]
        }
    }, {
        name: '3',
        data: data[2],
        type: 'scatter',
        symbolSize: function(data) {
            return Math.sqrt(data[2]) / 10e2;
        },
        label: {
            emphasis: {
                show: true,
                formatter: function(param) {
                    return param.data[3];
                },
                position: 'top'
            }
        },
        itemStyle: {
            normal: {
                shadowBlur: 10,
                shadowColor: 'rgba(120, 36, 50, 0.5)',
                shadowOffsetY: 5,
                color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{
                    offset: 0,
                    color: 'rgba(255, 255, 0, 1)'
                }, {
                    offset: 1,
                    color: 'rgba(255, 255, 0, 0)'
                }]),
                borderColor: 'rgba(255, 255, 0, 0.5)',
                borderWidth: 7
            }
        },
        markLine: {
            lineStyle: {
                normal: {
                    type: 'dotted',
                    color: 'bule'
                }
            },
            data: [{
                xAxis: dataxAxis
            }, {
                yAxis: datayAxis
            }]
        }
    }]

};
相关推荐
一颗松鼠3 分钟前
JavaScript 闭包是什么?简单到看完就理解!
开发语言·前端·javascript·ecmascript
小远yyds23 分钟前
前端Web用户 token 持久化
开发语言·前端·javascript·vue.js
阿伟来咯~1 小时前
记录学习react的一些内容
javascript·学习·react.js
吕彬-前端1 小时前
使用vite+react+ts+Ant Design开发后台管理项目(五)
前端·javascript·react.js
学前端的小朱1 小时前
Redux的简介及其在React中的应用
前端·javascript·react.js·redux·store
guai_guai_guai1 小时前
uniapp
前端·javascript·vue.js·uni-app
也无晴也无风雨2 小时前
在JS中, 0 == [0] 吗
开发语言·javascript
bysking2 小时前
【前端-组件】定义行分组的表格表单实现-bysking
前端·react.js
王哲晓3 小时前
第三十章 章节练习商品列表组件封装
前端·javascript·vue.js
fg_4113 小时前
无网络安装ionic和运行
前端·npm