当前位置: 首页 > news >正文

ECharts中的markPoint使用,最大值,最小值,展示label数值

什么是 markPoint?

markPoint 是 ECharts 中用于标注图表中特殊数据点的配置项。通过 markPoint,可以在图表中突出显示特定的数据点,例如最大值、最小值、平均值等,并可以自定义标注的样式和位置。

commonMarketPoint 方法详解

为了方便使用 markPoint 标注最大值和最小值,我们可以封装一个名为 commonMarketPoint 的方法。该方法接收一个 PointProps 类型的对象作为参数,并返回一个配置对象,用于 ECharts 的 markPoint 配置项。

PointProps 接口定义

首先,我们定义一个 PointProps 接口,用于约束 commonMarketPoint 方法的参数类型:

interface PointProps {symbolSize?: number; // 标注点的大小max?: { color?: string; borderColor?: string; borderWidth?: number }; // 最大值标注的样式min?: { color?: string; borderColor?: string; borderWidth?: number }; // 最小值标注的样式showValue?: boolean; // 控制是否显示数值标签valuePrecision?: number; // 控制数值的精度(0为整数,2为两位小数)maxPosition?: string; // 最大值标注的位置minPosition?: string; // 最小值标注的位置
}

commonMarketPoint 方法实现

接下来,我们实现 commonMarketPoint 方法:

// 最大值为红点,最小值为绿点
export const commonMarketPoint = ({symbolSize = 6,max = { color: '#FF3E3E', borderColor: '#FFF', borderWidth: 1 },min = { color: '#2FD380', borderColor: '#FFF', borderWidth: 1 },showValue = false, // 默认不显示数值标签valuePrecision = 2, // 默认保留两位小数maxPosition = 'top',minPosition = 'bottom',
}: PointProps) => {return {data: [{type: 'max',name: '最大值',symbol: 'circle', // 设置为圆形symbolSize, // 圆点大小label: {show: showValue,position: maxPosition,formatter: (params: any) => params.value.toFixed(valuePrecision),},itemStyle: {borderColor: max?.borderColor,borderWidth: max?.borderWidth,color: max?.color,shadowColor: '#fff',shadowBlur: 2,},},{type: 'min',name: '最小值',symbol: 'circle',symbolSize,label: {show: showValue,position: minPosition,formatter: (params: any) => params.value.toFixed(valuePrecision),},itemStyle: {borderColor: min?.borderColor,borderWidth: min?.borderWidth,color: min?.color,shadowColor: '#fff',shadowBlur: 2,},},],};
};

参数说明

  • symbolSize:标注点的大小,默认为 6。
  • max:最大值标注的样式,包括颜色、边框颜色和边框宽度。
  • min:最小值标注的样式,包括颜色、边框颜色和边框宽度。
  • showValue:是否显示数值标签,默认为 false。
  • valuePrecision:数值的精度,默认为 2,表示保留两位小数。
  • maxPosition:最大值标注的位置,默认为 ‘top’。
  • minPosition:最小值标注的位置,默认为 ‘bottom’。

使用示例

接下来,我们通过一个示例来演示如何使用 commonMarketPoint 方法。

HTML 代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>ECharts markPoint 示例</title><!-- 引入 ECharts --><script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
</head>
<body><!-- 为 ECharts 准备一个具备大小(宽高)的 DOM --><div id="main" style="width: 600px;height:400px;"></div><script src="index.js"></script>
</body>
</html>

JavaScript 代码

// 引入 commonMarketPoint 方法
import { commonMarketPoint } from './commonMarketPoint.js';
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {title: {text: 'ECharts markPoint 示例'},tooltip: {},xAxis: {data: ['A', 'B', 'C', 'D', 'E', 'F']},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20],markPoint: commonMarketPoint({showValue: true,valuePrecision: 2,})}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);

效果展示

运行上述代码后,你将看到一个柱状图,并在最大值和最小值处显示红点和绿点,并标注数值。

http://www.xdnf.cn/news/86113.html

相关文章:

  • JavaScript 渲染内容爬取实践:Puppeteer 进阶技巧
  • Qt之moveToThread
  • Spark-Streaming简介 核心编程
  • 【MySQL】索引失效场景大全
  • C++:继承
  • window上 elasticsearch v9.0 与 jmeter5.6.3版本 冲突,造成es 启动失败
  • 使用Autocannon.js进行HTTP压测
  • Vue3 + Vite + TS,使用 ExcelJS导出excel文档,生成水印,添加背景水印,dom转图片,插入图片,全部代码
  • 建造者模式详解及其在自动驾驶场景的应用举例(以C++代码实现)
  • 数据库对象与权限管理-Oracle数据字典详解
  • Linux mmp文件映射补充(自用)
  • 【Linux】虚拟内存——页表与分页
  • 性能测试篇——八股笔记
  • 从零实现富文本编辑器#3-基于Delta的线性数据结构模型
  • IOT项目——物联网 GPS
  • 如何在 Ansys Icepak AEDT 中设置多个流程以加快仿真速度?
  • 第十五讲、Isaaclab中在机器人上添加传感器
  • linux基础14--dns和web+dns
  • 【SAP-CO】生产的成本流转和成本分析
  • Gmail收取POP3邮件总是出错:服务器返回错误“Error in RETR command: Received an empty line”的解决方法
  • 基于国产 FPGA+ 龙芯2K1000处理器+翼辉国产操作系统继电保护装置测试装备解决方案
  • 0基础 | 51单片机 | Proteus仿真
  • 使用Nginx搭建Web服务
  • 黑马商城(六)RabbitMQ
  • 使用达梦官方管理工具SQLark快速生成数据库ER图并导出
  • ProxySQL 在路由层的核心作用
  • 深入理解CSS中的`transform-origin`属性
  • day30 学习笔记
  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第三模块·面向对象深度进化 —— 第十章 继承:超越C结构体嵌套的维度
  • 实时监测+远程管控:ADW300解锁阳台光伏运维新维度