首页 > 其他分享 >ECharts渐变温度直方图

ECharts渐变温度直方图

时间:2023-11-07 13:00:56浏览次数:43  
标签:rgba2 rgba1 const 渐变 直方图 ecs rgba ECharts Math

ECharts渐变直方图,根据具体的值调整色带,使所有颜色看起来协调一致。

直接在series数组中的对象中添加如下代码即可:

itemStyle: {
  color: function (params) {
    const cs = ['rgba(9, 132, 227, 1)', 'rgba(0, 206, 201, 1)', 'rgba(253, 203, 110, 1)', 'rgba(225, 112, 85, 1)']
    const step = 10
    const v = params.value
    const count = Math.floor(v / step) + 1
    const getGradientColor = (color1, color2, ratio) => {
      console.log(color1, color2)
      const rgba1 = color1.match(/\d+/g).map(Number);
      const rgba2 = color2.match(/\d+/g).map(Number);
      const r = Math.round(rgba1[0] + (rgba2[0] - rgba1[0]) * ratio);
      const g = Math.round(rgba1[1] + (rgba2[1] - rgba1[1]) * ratio);
      const b = Math.round(rgba1[2] + (rgba2[2] - rgba1[2]) * ratio);
      const a = Math.round(rgba1[3] + (rgba2[3] - rgba1[3]) * ratio);
      return `rgba(${r}, ${g}, ${b}, ${a})`;
    }
    let ecs = []
    for (let i = 0; i < count; i++) {
      const scale = 1 - i * step / v
      ecs = [...ecs, { offset: scale, color: cs[Math.min(3, i)] }]
    }
    const c = getGradientColor(cs[Math.min(3, count - 1)], cs[Math.min(3, count)], v % step / step)
    ecs = [...ecs, { offset: 0, color: c }]
    return new echarts.graphic.LinearGradient(0, 0, 0, 1, ecs)
  }
}

效果如下:

标签:rgba2,rgba1,const,渐变,直方图,ecs,rgba,ECharts,Math
From: https://www.cnblogs.com/hsxian/p/17814760.html

相关文章

  • echarts带背景色的柱状图
    import*asechartsfrom'echarts';varchartDom=document.getElementById('main');varmyChart=echarts.init(chartDom);varoption;option={xAxis:{type:'category',data:['Mon','Tue','W......
  • echarts基础折线图
    import*asechartsfrom'echarts';varchartDom=document.getElementById('main');varmyChart=echarts.init(chartDom);varoption;option={xAxis:{type:'category',data:['Mon','Tue','W......
  • echarts基础饼状图
    import*asechartsfrom'echarts';varchartDom=document.getElementById('main');varmyChart=echarts.init(chartDom);varoption;option={title:{text:'RefererofaWebsite',subtext:'FakeData',l......
  • Vue3 echarts 组件化使用 resizeObserver
    点击查看代码constresizeObserver=ref(null);//进行初始化和监听窗口变化onMounted(async()=>{awaitnextTick(()=>{initChart();setOptions(options.value,opts.value??true);});window.addEventListener('resize',handleResize);resizeO......
  • echarts坐标轴线、坐标轴刻度线、网格线控制
    xAxis:{name:'',axisTick:{show:true//坐标轴刻度线},axisLine:{//轴线show:false},splitLine:{//网格线show:true},axisLabel:{//坐标轴样式textStyle:{color:'#636363'}}}参考文章echarts坐标轴线、......
  • Echarts饼状图grid设置
    饼状图不能设置grid,而是center{type:"pie",radius:["30%","70%"],center:["50%","25%"],}center圆心:控制圆的位置radius饼图的半径控制显示尺寸参考文章Echarts饼状图设置......
  • echarts修改图例legend样式:正方形、矩形、圆形、圆角
    ECharts提供的标记类型有‘circle’,‘rect’,‘roundRect’,‘triangle’,‘diamond’,‘pin’,‘arrow’,‘none’legend:{icon:'circle'}参考文章echarts图例修改legend中icon的形状及大小......
  • Python GDAL绘制多个栅格的像素直方图
      本文介绍基于Python中gdal模块,实现对大量栅格图像批量绘制直方图的方法。  首先,明确一下本文需要实现的需求:现需对多幅栅格数据文件进行依据其像元数值的直方图绘制,具体绘制内容即各栅格图像像素数值的分布情况;所有栅格数据都保存在同一目标路径下,且均为.tif格式;而目标路径......
  • 使用CSS写一个带追踪特效的渐变按钮
    写一个带追踪特效的渐变按钮开头先观看这张GIF图:是否被它的出色动画效果所吸引?这是从一个完美竞技平台中录制出来的我脑海中萌生了用CSS来模仿这一效果的念头绘画元素我们先记录下这个按钮浮动的颜色(#868BFF),还有按钮的背景的渐变色(#39D5FF->#868bff)外部使用一个div元素表......
  • echarts散点图数据相差巨大的解决方案
    1这几天收到了一个新的需求,就是数据差距太大,导致页面很丑,让我优化一下,下面上图:、解决方案一:将yAxis和xAxis的type设置为log,这个方式可以很好的解决这个问题,但是有一个前提就是你的数据不能为负数,如果为负数,则数据渲染会出错。那我们的y轴数据中假设就有负数咋办?那我们就用第......