美文网首页
图表根据坐标值变化颜色

图表根据坐标值变化颜色

作者: 狂奔的小小胖子 | 来源:发表于2017-08-04 12:53 被阅读0次

样例代码

var chart = null;//定义图表对象
var chartModelJson = null;//定义参数对象
var colorJson = {
    定义各个值对应的颜色
    value1:'#f7a35c'
}
var updateChart = function(){
    if(判断需要的参数是否正确){
        参数不正确,return结束
    }
    ajax.get('请求地址',null,function(data){
        var dataJson = [];//定义图表需要的值
        var zonesJson = [];//定义图表颜色取值json
        var text = '图表介绍';
        if(验证请求结果是否正常){
            请求结果不正常,不再绘制图表
        }else{
            var list = data.data;
                        //循环list,组装dataJson和zonesJson
            for(var i = 0;i<list.length;i++){
                dataJson.push({x:list[i].time,y:parseInt(list[i].value),status:list[i].status});
                zonesJson.push({value:list[i].time,color:colorJson[list[i].status]});
            }
                        //增加dataJson和zonesJson的值到当前时间
            var newDate = new Date().getTime();
            dataJson.push({x:newDate,y:parseInt(list[list.length-1].value),status:list[list.length-1].status});
            zonesJson.push({value:newDate,color:colorJson[list[list.length-1].status]});
        }
        if(chart == null){
            chart = Highcharts.chart('historyStatusChart', {
                chart: {type: 'spline'},
                subtitle: {text:text},
                title: {text: '图表名称'},
                xAxis: {type: 'datetime',dateTimeLabelFormats: {month: '%e. %b',year: '%b'},title: {text: '状态记录时间'}},
                yAxis: {title: {text: 'Y轴坐标'}},
                tooltip: {formatter:function(){return'<strong>'+this.series.name+'</strong><br/>记录时间:'+Highcharts.dateFormat('%Y-%m-%d %H:%M:%S',this.x)+'<br/>Y轴坐标:'+this.y+'<br/>状态:'+this.point.status;}},//格式化提示语
                plotOptions: {spline: {marker: {enabled: false}}},
                credits:{enabled: false},//不展示版权信息
                exporting:{enabled:false},//不显示打印标签
                series: [{name: '线条名称',data:dataJson,zoneAxis: 'x',zones: zonesJson,showInLegend: false}]//showInLegend: false不显示线条指示
            });
            
        }else{
            chart.update({
                subtitle: {text:text},
                series: [{name: '线条名称',data:dataJson,zoneAxis: 'x',zones: zonesJson,showInLegend: false}]
            });
        }
    },false);
}

知识点详解

用途介绍

       我们经常会遇到这样的需求:用不同颜色标识出不同范围的值,例如 90-100 用绿色表示,60-80 用蓝色表示,小于 60用红色表示。在 Highcharts 4.1 之前,我们可以通过 plotBands 来标识出不同范围值对应的背景,或者用 plotLine 画一条标识线,还可以用不同颜色标记出点的颜色,这些解决方案都有自己的用途,但在某些情景下并不是最优方案。
Highcharts 4.1 增加了一个非常牛逼的新特性:Zones,先来看个例子:


示例图片

zones参数

zones: [{
  value: 0,//颜色的取值范围,大于等于该值的显示color的颜色
  color: '#f7a35c',//颜色值
  dashStyle: 'dot'//线条类型,默认是实线,dot表示虚线
} ]

更换颜色取值的坐标

       根据上述样例,只能做到通过Y轴的值来调整图表中线条的颜色。那么我们该如何使图表根据X轴的值来调整颜色呢?
       在需要调整颜色的series中增加zoneAxis参数,zoneAxis参数定义图表根据哪个轴的值来调整颜色,默认zoneAxis的值为'Y'。

使用建议

       如果同一个页面中的不是需要同时展示多个chart,建议不要通过Highcharts同时绘制多个chart。可以创建一个chart,然后根据chart的update方法修改参数使图表改变乃至重新绘制内容。

相关文章

  • 图表根据坐标值变化颜色

    样例代码 知识点详解 用途介绍 我们经常会遇到这样的需求:用不同颜色标识出不同范围的值,例如 90-100 用绿色...

  • Core Location Framework详解(二)如何根据

    本文相关: CLLocation CLGeocoder 上一篇说到如何获取相关坐标值,这篇主要来说说根据坐标值来获...

  • 关于图表的整理

    图表有几个要素: 图表类型 图表颜色 字体大小以及颜色 绘制图表的注意点 图表设计原则 一. 图表类型 比较常用的...

  • 【Excel成长记】动态图表的制作

    什么是动态图表? 就是可以根据选项变化,生成不同数据源的图表。 先放例图: 动态图表一般是函数公式配合窗体控件来完...

  • 如何让Excel图表根据数值大小变颜色

    前段时间培训Excel的时候,讲到图表这个模板的时候,有学员咨询到:“在单元格中,我们可以通过条件格式功能,根据数...

  • Vertex & Fragment Shader (五)-顶点颜

    1.根据模型的顶点坐标,设置颜色。 2.根据模型顶点在世界坐标系内的坐标,设置颜色。 3.加入了时间因子的顶点颜色变化

  • Excel读书笔记33——动态图表的制作

    一、动态图表基础知识 动态图表也称为交互式图表,可以随着用户点击或选择的变化而变化。与普通的静态图表相比,它可以提...

  • PPT图表中的颜色如何设置的不一样

    图表中的颜色如何不一样图表是这种颜色的 我想要这样的 方法: 【图表工具】选项卡—【形状样式】—【设置数据点格式】...

  • 动态图表的制作

    一、图表的制作过程 二、图表类型的选择 三、如何打破图表常规 1. 打破颜色限制 2. 打破图表束缚 3....

  • 根据颜色排队

    坐磁悬浮列车去东京机场,在等候区的地面上有两种颜色标注排队,蓝色是马上就到的车次,红色是下一趟到达的列车,这样可以...

网友评论

      本文标题:图表根据坐标值变化颜色

      本文链接:https://www.haomeiwen.com/subject/blpvlxtx.html