【问题标题】:HeatMap with custom colors for each cell每个单元格的自定义颜色的热图
【发布时间】:2015-04-29 18:32:16
【问题描述】:

我正在尝试根据坐标/ x 和 y 轴点为每个单元格生成带有自定义颜色的热图。

现在我做了这个,但它是硬编码的,如何让它动态化,请参考这个demo fiddle,想让这部分对所有颜色都动态化。 TIA

            {x:0,y:0, value:100,color:'red'},
            {x:0,y:1, value:10, color:'red'},
            {x:0,y:2, value:20, color:'red'},
            {x:0,y:3, value:30, color:'red'},
            {x:0,y:4, value:40, color:'red'},
            {x:0,y:0, value:50, color:'red'},

【问题讨论】:

  • 动态是什么意思?你需要什么?设置后就可以改一次?
  • 这里手动传递 X、Y 和值...我以数组对象的形式从 DB 中得到相同的结果。那么如何将这些值传递给图表。请参考小提琴,了解我想要实现的目标..
  • 听起来只是将数据库数据转换为正确格式以将数据传递到 Highcharts 选项的问题。
  • 没有。我从数据库中获取类别、系列和测量值,现在我必须为这些单元格提供颜色,并且应该是动态的(指即使类别/系列的数量发生变化,绘图的颜色结构也不应该改变,它应该调整类别和系列的值),在小提琴中我已经硬编码了我需要使其动态link的坐标

标签: javascript highcharts heatmap


【解决方案1】:

您可以使用加载事件,然后操纵颜色(基于逻辑)。

 events:{
            load:function() {
                var points = this.series[0].data,
                    lenY = this.yAxis[0].tickPositions.length - 1,
                    lenX = this.xAxis[0].tickPositions.length - 1,
                    x = lenX,
                    tmpX = 0,
                    y = 0,
                    j = 0;

                $.each(points, function(i, p){

                    if(p.x == 0 || p.y == 0) {
                        p.update({
                            color: 'red'
                        },false);
                    } else if(p.x > 0 && p.y > 0 && (p.y == x  || (p.y + 1) == x)) {
                        p.update({
                            color: 'green'
                        },false);

                        if(p.y == x)
                            x--;

                    } else if(p.x > 1 && p.y > 0 && p.y > x) {
                        p.update({
                            color: 'orange'
                        },false);
                    } else if(p.x > 0 && p.y > 0 && x > 2) {
                         p.update({
                            color: 'yellow'
                        },false);
                    }

                });

                this.isDirty = true;
                this.redraw();
            }
        }

示例:http://jsfiddle.net/4aqhB/260/

【讨论】:

  • 谢谢@Sebastian,我们可以为 {x:0,y:0} 点/坐标做同样的事情吗,每个单元格的颜色结构和你做的一样。再次感谢让我开心....
  • 一切视情况而定,我在你的模型上准备了一个不好的例子。
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2012-07-10
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多