Vue使用echarts散點(diǎn)圖在區(qū)域內(nèi)標(biāo)點(diǎn)
Vue 使用 echarts 散點(diǎn)圖在區(qū)域內(nèi)標(biāo)點(diǎn),供大家參考,具體內(nèi)容如下
首先是因?yàn)轫?xiàng)目,需要在一個(gè)區(qū)域內(nèi)根據(jù)坐標(biāo)標(biāo)出在標(biāo)準(zhǔn)大小的玻璃中標(biāo)出檢測(cè)出含有缺陷的坐標(biāo)點(diǎn)。
假如說(shuō),一塊玻璃的大小是標(biāo)準(zhǔn)的 100200 mm的大小,這個(gè)是定死的,不會(huì)變,每塊都這么大。
那么就直接在界面上創(chuàng)建一個(gè)100200px的div,表示是這塊玻璃。
規(guī)定,這塊玻璃的中心點(diǎn)是原點(diǎn)(0,0),向右向上是正,向左向下是負(fù)。
所以就是這個(gè)樣子

所以說(shuō)我就想用 echarts 直接在界面上渲染。
html
首先在界面上繪制一個(gè)div來(lái)放置echarts。其中這個(gè)被我抽離出來(lái)做成了組件,組件大小已經(jīng)規(guī)定好了,就是200*100的標(biāo)準(zhǔn)大小。公司要求不能拉伸,不然給人的感覺點(diǎn)就是錯(cuò)位的,如果太大,可以按比例縮小或放大。
<template> ? <div style="width: 100%;height: 100%;border: 1px solid #dee1e6;background-color: #f1f3f4;"> ? ? <div id="map" style="width: 100%;height:100%;"></div> ? </div> </template>
然后是給散點(diǎn)圖畫坐標(biāo),其實(shí)這個(gè)地方就很煩。
echarts 的坐標(biāo)和公司的有出入。

首先設(shè)置x軸 和 y軸
// 循環(huán)界面
let xLabel = []
let yLabel = []
for (let i = -49; i <= 50; i++) {
? ? ? ? ? xLabel.push(i)
? ? ? ? }
? ? ? ? for (let y = -99; y <= 100; y++) {
? ? ? ? ? yLabel.push(y)
? ? ? ? }然后是繪制點(diǎn)的集合
后臺(tái)返回來(lái)的點(diǎn)的數(shù)據(jù)結(jié)構(gòu)大體是這個(gè)樣子的。

series.push({
? ? symbolSize: 10,
? ? ? ? ? color: 'red',
? ? ? ? ? name: this.showData[2],
? ? ? ? ? // data下面是計(jì)算出的,就是楞加
? ? ? ? ? data: [[this.showData[0] / 1000 + 49, this.showData[1] / 1000 + 99]],
? ? ? ? ? type: 'scatter',
})坐標(biāo)需要轉(zhuǎn)換,除1000,不解釋了,就這樣規(guī)定的。
然后就可以繪制散點(diǎn)圖了。
let option = {
? ? ? ? ? grid: { ? // 因?yàn)榫褪莻€(gè)圖片,模擬玻璃,就把繪制的邊距設(shè)置為0,繪制區(qū)域充滿整個(gè)屏幕
? ? ? ? ? ? top: 0,
? ? ? ? ? ? left: 0,
? ? ? ? ? ? right: 0,
? ? ? ? ? ? bottom: 0,
? ? ? ? ? },
? ? ? ? ? xAxis: {?
? ? ? ? ? ? show: false,
? ? ? ? ? ? data: xLabel
? ? ? ? ? },
? ? ? ? ? yAxis: {
? ? ? ? ? ? show: false,
? ? ? ? ? ? data: yLabel
? ? ? ? ? },
? ? ? ? ? series,
? ? ? ? }
? ? ? ? this.charts = echarts.init(document.getElementById('map'))
? ? ? ? this.charts.setOption(option, true)
? ? ? ? // 下面這個(gè)點(diǎn)擊事件是當(dāng)我點(diǎn)擊圖上的點(diǎn)的是后觸發(fā)的點(diǎn)擊事件
? ? ? ? this.charts.on('click', (params) => {
? ? ? ? ? if (params.componentSubType === 'scatter') {
? ? ? ? ? ? console.log('pointClick ----> ', params.seriesName)
? ? ? ? ? }
})可以了。
大體效果就這個(gè)樣子。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue click.stop阻止點(diǎn)擊事件繼續(xù)傳播的方法
今天小編就為大家分享一篇vue click.stop阻止點(diǎn)擊事件繼續(xù)傳播的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
如何在Vue.js項(xiàng)目中使用Jest進(jìn)行單元測(cè)試
在眾多測(cè)試框架中,Jest?因其易用性、強(qiáng)大功能以及與?Vue.js?的良好兼容性,成為了許多開發(fā)者的首選,本文將詳細(xì)介紹如何在?Vue.js?項(xiàng)目中使用?Jest?進(jìn)行單元測(cè)試,需要的可以參考下2024-11-11
Vue3使用Proxy構(gòu)建高效響應(yīng)式數(shù)據(jù)的示例代碼
在 Vue 3 中,Proxy 主要用于 攔截對(duì)象的基本操作,包括 屬性讀?。╣et)、修改(set)、刪除(deleteProperty) 等,本文給大家介紹了Vue3使用Proxy構(gòu)建高效響應(yīng)式數(shù)據(jù)的操作教程,需要的朋友可以參考下2025-03-03
Vue3計(jì)算屬性computed和監(jiān)聽屬性watch區(qū)別解析
計(jì)算屬性適用于對(duì)已有的數(shù)據(jù)進(jìn)行計(jì)算,派生新的數(shù)據(jù),并在模板中使用;而監(jiān)聽屬性適用于監(jiān)聽數(shù)據(jù)的變化,并執(zhí)行一些特定的操作,根據(jù)具體的需求和場(chǎng)景,選擇適合的機(jī)制這篇文章主要介紹了Vue3計(jì)算屬性computed和監(jiān)聽屬性watch,需要的朋友可以參考下2024-02-02
vue3+elementPlus?table中添加輸入框并提交校驗(yàn)
這篇文章主要介紹了vue3+elementPlus?table里添加輸入框并提交校驗(yàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
vue 實(shí)現(xiàn) ios 原生picker 效果及實(shí)現(xiàn)思路解析
這篇文章主要介紹了vue 實(shí)現(xiàn) ios 原生picker 效果及實(shí)現(xiàn)思路解析,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-12-12

