推荐一个健康数据基于echart做的图表

本文介绍了一个使用ECharts实现的数值预警图表示例,通过设置标记区域来直观展示数值是否超过设定的高低阈值。该示例适用于监测数据波动并进行预警提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个还是一个很粗糙的设计,主要是基于echart如何表现数值是否超高或者过低

效果图
效果图

下面是代码可以复制到本地,改为html后缀直接打开

<!--
    THIS EXAMPLE WAS DOWNLOADED FROM https://echarts.apache.org/examples/zh/editor.html?c=line-markline
-->
<!DOCTYPE html>
<html style="height: 100%">
    <head>
        <meta charset="utf-8">
    </head>
    <body style="height: 100%; margin: 0">
        <div id="container" style="height: 100%"></div>

        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
        <!-- Uncomment this line if you want to dataTool extension
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/extension/dataTool.min.js"></script>
        -->
        <!-- Uncomment this line if you want to use gl extension
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl@2/dist/echarts-gl.min.js"></script>
        -->
        <!-- Uncomment this line if you want to echarts-stat extension
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat@latest/dist/ecStat.min.js"></script>
        -->
        <!-- Uncomment this line if you want to use map
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/map/js/china.js"></script>
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/map/js/world.js"></script>
        -->
        <!-- Uncomment these two lines if you want to use bmap extension
        <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=<Your Key Here>"></script>
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/extension/bmap.min.js"></script>
        -->

        <script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
var option ={
    xAxis: {
        type: 'category',
        boundaryGap: false,
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
        type: 'value', 
        scale:true 
    },
    series: [{
        data: [820, 932, 901, 934, 1290, 1330, 1320,100],
        type: 'line', 
        markArea: {
            label:{ 
                position: 'insideRight' 
            },
            borderColor:'#eb7986',
            silent: true,
            data: [ 
                [{
                    name: '过高',
                    yAxis: 1300,
                    itemStyle: {
                        color: 'rgb(250,240,240)',
                        borderColor:'#eb7986',
                        borderWidth:1,   
                    }
                }, {
                }],
                [{
                    name: '过低',
                    itemStyle: {
                        borderColor:'#eb7986',
                        color: 'rgb(250,240,240)',
                        borderWidth:1,
                    }
                }, {
                    yAxis: 850,
                }]
            ]
        }
    }]
}; 

if (option && typeof option === 'object') {
    myChart.setOption(option);
}

        </script>
    </body>
</html>
    

也可以复制里面的option 到下面官方网址上预览
https://echarts.apache.org/examples/zh/editor.html?c=line-markline

### 如何在 ECharts 中实现多个图表的数据绑定 要在 ECharts 中实现多个图表的数据绑定,可以通过前端框架(如 Vue 或小程序开发环境)来动态生成图表实例,并将数据传递给这些图表。以下是具体的方法: #### 使用 WXML 和 WeChat 小程序实现多个 ECharts 图表的数据绑定 在一个视图组件中循环渲染多个 `ec-canvas` 组件时,可以利用 `wx:for` 指令遍历数据列表,并为每个项创建一个独立的 ECharts 实例[^1]。 ```html <view class="bor" wx:for="{{covisitReportList}}"> <ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar" tuData="{{item}}" ec="{{ ec }}" ></ec-canvas> </view> ``` 在此代码片段中: - `{{covisitReportList}}` 是包含多个图表所需数据的对象数组。 - 每次迭代会生成一个新的 `<ec-canvas>` 元素,其中 `tuData` 属性用于接收当前项的数据。 为了使此功能生效,需确保在页面逻辑部分初始化每一个 ECharts 实例,并将其与对应的数据关联起来。例如,在 Page 对象中的 `onLoad` 方法里完成如下操作: ```javascript Page({ data: { covisitReportList: [ { title: 'Chart 1', seriesData: [12, 34, 56] }, { title: 'Chart 2', seriesData: [78, 90, 23] } ], ec: {} }, onReady() { const charts = []; this.data.covisitReportList.forEach((item, index) => { let chartId = `mychart-bar-${index}`; let dom = document.getElementById(chartId); if (dom && !charts[index]) { charts[index] = echarts.init(dom); charts[index].setOption({ xAxis: {}, yAxis: {}, series: [{ name: item.title, type: 'bar', data: item.seriesData }] }); } }); this.setData({ ec: {} }); // 更新到最新状态 } }); ``` 这段 JavaScript 脚本负责为每张图表分配唯一的 ID 并调用 `echarts.init()` 初始化它们。随后设置各自的配置选项以展示不同的系列数据。 --- #### 在 Vue.js 中使用 ECharts 进行多图表数据绑定 如果是在 Vue.js 环境下工作,则可通过 v-for 指令配合 ref 动态管理多个 ECharts 实例[^2]。 HTML 部分定义结构如下所示: ```html <div v-for="(chartItem, idx) in mapData" :key="idx"> <div :id="'map' + idx"></div> </div> ``` JavaScript 的核心逻辑则应这样编写: ```javascript export default { data() { return { mapData: [ { Address: "吉林", Count: 1 }, { Address: "宁夏", Count: 1 }, ... ] }; }, mounted() { this.mapData.forEach((dataPoint, i) => { var myChart = echarts.init(document.getElementById('map' + i)); myChart.setOption({ tooltip: {}, visualMap: { min: 0, max: 10, left: 'left', top: 'bottom', text: ['高', '低'], calculable: true }, series: [{ name: 'Count', type: 'scatter', coordinateSystem: 'geo', data: transformToGeoCoord(dataPoint), symbolSize: function(val){ return val[2]*10; }, label: { normal:{ show:false } }, itemStyle: { normal:{color:'red'} } }], geo: { map: 'china' } }); }); function transformToGeoCoord(point) { // 假设有一个函数能转换地址字符串至经纬度坐标 return getLngLatFromAddress(point.Address).concat([point.Count]); } } } ``` 这里的关键在于每次循环都重新初始化新的 ECharts 实例,并为其指定特定的地图区域及相关属性值。 --- #### 总结 无论是微信小程序还是基于 Vue.js 构建的应用场景,都可以借助模板引擎的功能以及编程技巧轻松达成多图表的数据绑定目标。重要的是要合理规划 DOM 结构设计和脚本执行流程,从而保障性能优化的同时满足业务需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值