Echarts中单独为每个legend图例设置样式-根据数据正负显示不同样式

这篇具有很好参考价值的文章主要介绍了Echarts中单独为每个legend图例设置样式-根据数据正负显示不同样式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Echarts中单独为每个legend图例设置样式-根据数据正负显示不同样式,数据可视化,Vue,JavaScript,echarts,前端,javascript

原设置参数

const getXAxis = (dataList) => {
  return dataList.map((item) =>
    window.echarts.format.formatTime('MM-dd hh:mm', item, false)
  );
};

const dealTooltip = (params, name) => {
  let price = null;
  let BinanceRate = null;
  let OKXRate = null;
  let BitgetRate = null;
  params.forEach((item) => {
    if (item.seriesType === 'line') {
      price = item.data[1];
    } else if (item.seriesName === 'Binance') {
      BinanceRate = item.data[1];
    } else if (item.seriesName === 'OKX') {
      OKXRate = item.data[1];
    } else if (item.seriesName === 'Bitget') {
      BitgetRate = item.data[1];
    }
  });
  let tip = `<div class="line-bar-tooltip">
      <div class="time">${params[0].axisValueLabel}</div>
      <div class="flex ${price ? 'show' : 'hide'}">
        <b class="logo"></b>
        <div class="text-content">${name}价格</div>
        <div class="value">$${price}</div>
      </div>
      <div class="flex ${BinanceRate ? 'show' : 'hide'}"">
        <b class="logo bin"></b>
        <div class="text-content">Binance</div>
        <div class="value">${toPrecision(BinanceRate * 100, 4)}%</div>
      </div>
      <div class="flex ${OKXRate ? 'show' : 'hide'}"">
        <b class="logo okx"></b>
        <div class="text-content">OKX</div>
        <div class="value">${toPrecision(OKXRate * 100, 4)}%</div>
      </div>
      <div class="flex ${BitgetRate ? 'show' : 'hide'}"">
        <b class="logo bit"></b>
        <div class="text-content">Bitget</div>
        <div class="value">${toPrecision(BitgetRate * 100, 4)}%</div>
      </div>
    </div>`;
  return tip;
};

export function getOption(diskData, name, period) {
  if (!diskData) {
    diskData = mockData;
  }
  return {
    tooltip: {
      trigger: 'axis',
      axisPointer: {
        type: 'cross',
        crossStyle: {
          color: '#999'
        }
      },
      formatter: (params) => dealTooltip(params, name), // 处理弹框内容样式
      backgroundColor: 'rgba(24,25,30,1)',
      padding: 0,
      borderWidth: 0,
      textStyle: {
        color: '#fff'
      }
    },
    grid: {
      left: '3%',
      right: '4%',
      bottom: '3%',
      containLabel: true
    },
    // dataZoom: [
    //   {
    //     type: 'inside',
    //     start: 50, // 数据窗口范围的起始百分比,表示50%
    //     end: 100
    //   },
    //   {
    //     type: 'slider',
    //     borderColor: 'rgba(0,0,0,0)'
    //   }
    // ],
    legend: {
      data: [`价格`, '空单', '多单'],
      inactiveColor: '#ccc',
      textStyle: {
        color: '#fff'
      }
    },
    xAxis: [
      {
        type: 'time',
        axisPointer: {
          snap: true,
          label: {
            show: true,
            formatter: function (params) {
              return echarts.format.formatTime(
                'yyyy-MM-dd hh:mm',
                params.value
              );
            }
          },
          handle: {
            show: false
          }
        },
        axisLabel: {
          show: true,
          // formatter: '{yyyy}-{MM}-{dd} {hh}:{mm}' // 设置x轴标签
          formatter: () => {
            // 设置x轴标签
            if (period === '1m') {
              return '{hh}:{mm}';
            } else if (period === '5m') {
              return '{MM}-{dd} {hh}:{mm}';
            } else {
              return '{MM}-{dd}';
            }
          }
        },
        axisLine: {
          show: false
        }
      }
      // {
      //   type: 'category',
      //   data: getXAxis(diskData.categoryData), // 处理时间戳
      //   axisPointer: {
      //     type: 'line'
      //   }
      // }
    ],
    yAxis: [
      {
        type: 'value',
        axisLabel: {
          show: true,
          fontSize: 12,
          color: '#868E9B',
          formatter(value, index) {
            // y轴坐标百分比表示,最多保留4位小数
            return toPrecision(value * 100, 4) + '%';
          }
        },
        // 背景横向样式修改
        splitLine: {
          show: true,
          lineStyle: {
            color: 'rgba(109, 180, 202, 0.3)',
            type: 'dashed'
          }
        }
      },
      {
        type: 'value',
        axisLabel: {
          formatter: '${value}'
        },
        // 去掉背景横线
        splitLine: {
          show: false
        }
      }
    ],
    series: [
      {
        name: `价格`,
        type: 'line',
        smooth: true,
        showSymbol: false, // 只有在 tooltip hover 的时候显示圆点
        yAxisIndex: 1,
        tooltip: {
          valueFormatter: function (value) {
            return `$${value}`;
          }
        },
        data: diskData.valueDataPrice,
        itemStyle: {
          color: '#FFC107'
        }
      },
      {
        name: '空单',
        type: 'bar',
        barGap: '-100%', // 使柱体重叠
        tooltip: {
          valueFormatter: function (value) {
            return toPrecision(value * 100, 4) + '%';
          }
        },
        data: diskData.valueDataBN,
        itemStyle: {
          // 通过值的正负给颜色
          color: (params) => {
            return params.value[1] > 0 ? '#11C384' : '#D93D57';
          }
        }
      },
      {
        name: '多单',
        type: 'bar',
        barGap: '-100%', // 使柱体重叠
        tooltip: {
          valueFormatter: function (value) {
            return toPrecision(value * 100, 4) + '%';
          }
        },
        data: diskData.valueDataOK,
        itemStyle: {
          // 通过值的正负给颜色
          color: (params) => {
            return params.value[1] > 0 ? '#11C384' : '#D93D57';
          }
        }
      }
    ]
  };
}

参数

Echarts中单独为每个legend图例设置样式-根据数据正负显示不同样式,数据可视化,Vue,JavaScript,echarts,前端,javascript文章来源地址https://www.toymoban.com/news/detail-833663.html

    legend: {
// 统一设置
      // data: [`价格`, '空单', '多单'],
      // inactiveColor: '#ccc',
      // textStyle: {
      //   color: '#fff'
      // }

// 单独设置
      data: [
        {
          name: '价格',
//小方块
          icon: 'circle', // 设置小方块的图标为圆形
//设置图例的小方块样式
          itemStyle: {
            color: '#FF0000'

      //color: '#FF0000', // 设置小方块的颜色为红色
      //borderColor: '#000000', // 设置小方块的边框颜色为黑色
      //borderWidth: 2, // 设置小方块的边框宽度为2像素
      //borderType: 'solid', // 设置小方块的边框类型为实线
      //borderRadius: 2, // 设置小方块的边框圆角半径为2像素
      //width: 20, // 设置小方块的宽度为20像素
      //height: 10 // 设置小方块的高度为10像素
          }
        },
        {
          name: '空单',
          icon: 'rect', // 设置小方块的图标为矩形 square
          itemStyle: {
            color: '#00FF00'
          }
        },
        {
          name: '多单',
          icon: 'triangle', // 设置小方块的图标为三角形
          itemStyle: {
            color: '#0000FF'
          }
        }
      ],
      inactiveColor: '#ccc',
      textStyle: {
        color: '#fff'
      }
    },

到了这里,关于Echarts中单独为每个legend图例设置样式-根据数据正负显示不同样式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Echarts图例点击事件】自定义Echarts图例legend点击事件(已解决)

    **【写在前面】**这下我又不得不说了,还是客户现场使用时想查询一周的数据,查询时候发现页面居然要等20多秒,这是个人都得崩溃吧,然后就开始排查这块业务代码模块,主要体现在两个方面: A.接口请求时间过长(约8秒),有优化的空间 B.前端一次性调用了四次接口,分

    2023年04月08日
    浏览(64)
  • Echarts:legend 图例形状,图例文字颜色与图例一致及图例文字多种颜色的配置

    本文详细讲解了如何使用ECharts进行图例配置,包括图例形状的选择(如circle, rect等)、图例文字颜色与图例形状一致性的设置,以及如何实现图例文字多种颜色的配置。

    2024年02月06日
    浏览(39)
  • ECharts中: legend图例中的格式化属性(formatter)以及嵌套图表

    Documentation - Apache ECharts 字符串模板的相识变量使用(不同的图表对应都有对应的变量): Documentation - Apache ECharts 具体详细使用可以点^^^链接查看: 你只需要创建一个 div id =\\\"xjzbChart\\\"/div 然后 获取 xjzbChart = echarts.init(document.getElementById(\\\'xjzbChart\\\')); 在 series数组里面创建两个图表对象

    2024年02月13日
    浏览(31)
  • 图例legend语法及设置

    (1)设置图例位置 使用loc参数 plt.legend(loc=‘lower left’) 0 ‘best’ 1 ‘upper right’ 2 ‘upper left’ 3 ‘lower left’ 4 ‘lower right’ 5 ‘right’ 6 ‘center left’ 7 ‘center right’ 8 ‘lower center’ 9 ‘upper center’ 10 ‘center’ (2)设置图例字体 #设置字体大小 fontsize : int or float or {‘xx-small’,

    2024年02月06日
    浏览(33)
  • Python Matplotlib数据可视化绘图之(六)————图片大小、颜色、标题、纵横坐标、画布和绘图区域背景颜色、Legend(图例)等的参数设置详解

    前面五期的文章详细讲述了Python Matplotlib数据可视化绘图的方法技巧,主要涉及柱状图(《Python Matplotlib数据可视化绘图之(一)————柱状图》)、箱线图(《Python Matplotlib数据可视化绘图之(二)————箱线图》)、散点图(《Python Matplotlib数据可视化绘图之(三)—

    2024年02月06日
    浏览(66)
  • 【Vue】在el-table的el-table-column中,如何控制单行、单列、以及根据内容单独设置样式。例如:修改文字颜色、背景颜色

    用cell-style表属性来实现。在官网中是这样表述这个属性的。    在el-table中用v-bind绑定此属性。(v-bind的简写是:) data中的options数据为: 此时页面显示为:     在methods中声明cellStyle方法。让我们打印出各个参数看一下代表了什么。 控制台打印如下:     其实很好理解,

    2024年02月15日
    浏览(39)
  • python数据绘图-legend图例位置调整优化

    上一篇中我们使用twinx()函数绘制了双轴图像,但是如果两个图像都添加图例,就会出现图例重叠的问题,需要我们手动设置图例位置来调整。 可以通过以下参数进行调整 loc:九分位 borderaxespad:向图像中心|外部移动 bbox_to_anchor:上下左右移动 粗调图例位置把整个图像等分为

    2024年02月13日
    浏览(26)
  • 为每个项目单独设置node版本

    如果你同时开发多个项目,每个项目所需的node版本又不相同,那么你需要为每个项目单独设置node版本。 node官网上介绍了几种版本管理工具,有:n,nodenv, nvm。 Installing Node.js via Package Manager   nodenv的说明里写到可以为每个项目单独设置,不影响全局,所以以下详细说明no

    2024年02月07日
    浏览(31)
  • echarts中实现自定义legend数据

    很久很久以前,我刚使用echarts,更新了一篇关于echarts中formatter实现动态legend的blog,很多人来问是如何实现的,一直很忙,懵懵懂懂也在没看,近来抽时间更新了一下实现方式 类似于以下这种图例,很多新手没办法下手了,其实直接使用echarts中属性的格式器formatter就可以解

    2024年02月13日
    浏览(33)
  • 【前端vue+elemenui】el-table根据表格数据设置整行样式或单元格样式

    首先需要了解俩个函数,row-class-name、cell-class-name 这里以cell-class-name单元格样式为例 row-class-name 行的 className 的回调方法,也可以使用字符串为所有行设置一个固定的 className。 Function({row, rowIndex})/String cell-class-name 单元格的 className 的回调方法,也可以使用字符串为所有单元

    2024年01月24日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包