账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue echart中 markPoint里formatter返回的值不跟随在柱状图上
    48
    0
    for循环动态渲染的柱状图,柱状顶部的值位置不跟随柱子,渲染的第一个是好好的,第二个开始位置就挤在前部分了,也就是第二个图表渲染前几个柱子数量等于第一个柱子数的才有顶部数字let Charts = document.getElementsByClassName('myChart_x') let coordItems = [] //值定位显示 let xdeptName = [] //横坐标 let indexItems = [] //柱子上的排名 let Xdata = [] //值 for (let i = 0; i < data.length; i++) { // 通过for循环,在相同class的dom内绘制元素 let myChart = this.$echarts.init(Charts[i]) data[i].deptList.forEach((v, index) => { xdeptName.push(v.deptName) coordItems.push({ coord: [index, v.value] }) indexItems.push(v.index) Xdata.push(v.value) }) myChart.setOption({ tooltip: { trigger: 'axis', axisPointer: { type: 'shadow', }, }, xAxis: { type: 'category', axisLabel: { interval: 0, }, data: xdeptName, }, yAxis: { type: 'value', }, grid: { containLabel: true, left: '1%', right: '1%', bottom: '3%', }, series: [ { barMaxWidth: 30, barMinHeight: 15, type: 'bar', data: Xdata, label: { show: true, position: 'inside', formatter: (a) => { return indexItems[a.dataIndex] }, }, markPoint: { symbolSize: 0, // 定位 data: coordItems, label: { fontSize: 10, show: true, position: 'top', formatter: (a) => { return Xdata[a.dataIndex] }, }, }, }, ], }) }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在 Vue.js 中使用 ECharts 打印数据时,饼图中的每一个点的数据格式应该是“{ type: 'scatter', point: { data: [value1, value2, value3] } }”,其中,type 是数据类型(这里我们假设数据是数组),point 是每个点的数据,data 是每个点的值。如果你在饼图中使用 formatter 对每个点的数据进行格式化,但是格式化后的值并没有跟随在柱状图上,可能的原因有以下几点:

      1. formatter 对数据的格式化逻辑有问题,导致其格式化后的值没有正确地显示在柱状图上。
      2. 你的数据类型可能不是数组,而是其他类型,导致 formatter 的逻辑出错。
      3. 你的 formatter 函数可能没有正确地传递给 markPoint,导致格式化后的值没有被正确地应用到每个点上。

      你可以尝试一下以下的解决方案:

      1. 首先,确保你的数据类型是数组,如果不是,你需要先将数据转换为数组。
      2. 然后,你可以检查 formatter 函数的逻辑,确保它正确地对数据进行格式化,并且格式化后的值被正确地应用到每个点上。
      3. 如果 formatter 函数的逻辑没有问题,但是仍然没有正确地显示在柱状图上,你可能需要检查你的 markPoint 函数,确保它正确地将格式化后的值添加到每个点上。
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部