ECharts图表实现交易所的深度图效果

看过的深度图是直接用canvas画三个控件,图表,坐标,Tooltip信息框。ECharts是用2个canvas画布,生成2个图表,实现需要逆转逻辑,不能按正常思维做,比如都以为是一个canvas画布生成1个k线,然后数据中间置空,然后生成两个Tooltip信息框控件联动一个k线的canvas。实际上我们可以通过样式控制图表排版再使用图表api反转x轴就可以实现深度图效果了。

ECharts图表教程:联动控制Tooltip的移动

本教程将向您展示如何使用ECharts库控制Tooltip信息框的移动。我们将使用两个图表作为示例,并分别控制它们的Tooltip信息框在鼠标指针附近移动显示。

步骤 1:准备HTML结构

首先,我们需要准备一个HTML文件,其中包含两个容器用于放置图表。我们使用 containercontainer2 作为两个容器的ID。以下是示例的HTML结构:
这里需要注意一个问题就是要两个表格高度相等,采用的解决方案是图表合并,联动控制Tooltip的移动。

<!DOCTYPE html>
<html lang="zh-CN" style="height: 100%">
<head>
  <meta charset="utf-8">
</head>
<body style="height:800px; margin: 0;    background: #151514;">
  <div class="mian" style="position: relative; height: 100%; width: 100%;display: flex;justify-content: center; align-items: center;">
    <div id="container"style=" height: 100%; width: 50%;"></div>
    <div id="container2" style="height: 100%; width: 50%;">
     
    </div>
    <div style="position: absolute; top: 50%; left: 50%;pointer-events: none; transform: translate(0%, -50%); width: 80%; height: 85%; border-left: 1px solid red;"></div>
   
  </div>

  <!-- ECharts库的引入 -->
  <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5.4.3/dist/echarts.min.js"></script>
  <script type="text/javascript">
    // 在这里编写JavaScript代码
  </script>
</body>
</html>

步骤 2:初始化图表

接下来,我们需要使用ECharts库来初始化两个图表实例,并将其分别放置在 containercontainer2 容器中。我们将使用 echarts.init 方法来初始化图表,并为每个图表设置相应的配置项。以下是示例代码:

<script type="text/javascript">
  var dom = document.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts是一个基于JavaScript的开源可视化库,它提供了各种类型的图表,如折线图、柱状图、饼图等等。实现多个折线图和柱状图混合的方法如下: 1. 定义一个包含多个数据系列的option对象,每个数据系列对应一个折线图或柱状图。 2. 在option对象中定义x轴和y轴的数据,以及图表的样式、标题等属性。 3. 使用ECharts的实例化对象将option对象传入,并将图表渲染到指定的DOM元素中。 以下是一个示例代码,实现了两个折线图和一个柱状图混合显示: ```javascript // 定义数据 var data1 = [10, 20, 30, 40, 50, 60]; var data2 = [15, 25, 35, 45, 55, 65]; var data3 = [8, 18, 28, 38, 48, 58]; // 定义option对象 var option = { legend: { data: ['折线图1', '折线图2', '柱状图'] }, tooltip: { trigger: 'axis' }, xAxis: { type: 'category', data: ['周一', '周二', '周三', '周四', '周五', '周六'] }, yAxis: [ { type: 'value', name: '折线图1', axisLabel: { formatter: '{value} °C' } }, { type: 'value', name: '折线图2', axisLabel: { formatter: '{value} %' } }, { type: 'value', name: '柱状图', axisLabel: { formatter: '{value} 个' } } ], series: [ { name: '折线图1', type: 'line', data: data1 }, { name: '折线图2', type: 'line', yAxisIndex: 1, data: data2 }, { name: '柱状图', type: 'bar', yAxisIndex: 2, data: data3 } ] }; // 实例化ECharts对象 var myChart = echarts.init(document.getElementById('chart')); // 渲染图表 myChart.setOption(option); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值