微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

highcharts 样条图 - 大数据应仅绘制特定数据

如何解决highcharts 样条图 - 大数据应仅绘制特定数据

我创建了一个只有 12 个月数据的样条曲线高图(参考:演示示例 1)并且能够完美地绘制它,因为当有大 - 36 或 60 个月的数据时(参考:演示示例 2)我需要每季度绘制一次数据如(2020 年 3 月、2020 年 6 月、2020 年 9 月、2020 年 12 月等...)我该如何实现?

演示示例 1:https://jsfiddle.net/hdaqg45f/1/

演示代码 1:

var plotBands = [
            {
                color: 'rgb(204,0)',from: 0,to: 30.99,zIndex: 3
            },{
                color: 'rgb(226,113,113)',from: 31,to: 44.99,{
                color: 'rgb(247,209,34)',from: 45,to: 54.99,{
                color: 'rgb(136,207,136)',from: 55,to: 68.99,{
                color: 'rgb(68,180,68)',from: 69,to: 87.99,{
                color: 'rgb(0,153,from: 88,to: 100,zIndex: 3
            }
        ];
    
    var dates = ['Mar-2020','Apr-2020','May-2020','Jun-2020','Jul-2020','Aug-2020','Sep-2020','Oct-2020','Nov-2020','Dec-2020','Jan-2021','Feb-2021'];
    
    var chartdata = [
        {
        color: "rgb(0,187,221)",data: [50,15,52,54,56,51,85,96,53,55,57],date: dates,name: 'RiskGauge score',type: 'spline'
      },{
        color: "rgb(154,2,42)",data: [12,14,18,16,23,27,29,42,16],name: 'United States of America Median',type: 'spline'
      }
    ]
    
    Highcharts.chart('container',{
        chart: {
          marginTop: 10,height: 250
        },title: {
          text: null
        },credits: {
          enabled: false
        },legend: {
          align: "center",layout: "horizontal",verticalAlign: "bottom",alignColumns: false,itemdistance: 4,symbolHeight: 18,symbolWidth: 18,itemStyle: {
            fontSize: "11px !important"
          }
        },xAxis: {
          categories: chartdata[0].date,labels: {
            style: {
              fontSize: "11px !important",color: "#000"
            }
          },gridLineColor: "transparent",gridlinewidth: 0,linewidth: 0,minorGridlinewidth: 0,lineColor: "transparent",minorTickLength: 0,tickLength: 0,style: {
            fontSize: "15px !important",color: "#000"
          }
        },yAxis: [
          {
            min: 0,max: 100,width: 20,tickInterval: 20,plotBands: plotBands,style: {
              fontSize: "10px",color: "red"
            },title: {
              text: ""
            },labels: {
              style: {
                fontWeight: 'bold',color: 'black',},formatter: function () {
                  return this.value;
                }
            },{
            linkedTo: 0,gridLineColor:'white',labels: {
              enabled:false,],plotOptions: {
          series: {
            states: {
              hover: {
                enabled: true
              },inactive: {
                opacity: 1
              }
            },enableMouseTracking: true,borderWidth: 1,borderColor: "#FFFFFF",threshold: 0,// let zero values have some height
            marker: {
              enabled: true
            },minPointLength: 10
          }
        },tooltip: {
          useHTML: false,shared: false,followPointer: false
        },series: chartdata
      });

演示示例 2:https://jsfiddle.net/hdaqg45f/s

演示代码 2:

var plotBands = [
        {
            color: 'rgb(204,zIndex: 3
        },{
            color: 'rgb(226,{
            color: 'rgb(247,{
            color: 'rgb(136,{
            color: 'rgb(68,{
            color: 'rgb(0,zIndex: 3
        }
    ];

var dates = ['Mar-2020','Feb-2021','Mar-2021','Apr-2021','May-2021','Jun-2021','Jul-2021','Aug-2021','Sep-2021','Oct-2021','Nov-2021','Dec-2021','Jan-2022','Feb-2022','Mar-2022','Apr-2022','May-2022','Jun-2022','Jul-2022','Aug-2022','Sep-2022','Oct-2022','Nov-2022','Dec-2022','Jan-2023','Feb-2023'];

var chartdata = [
    {
    color: "rgb(0,57,50,type: 'spline'
  },{
    color: "rgb(154,12,type: 'spline'
  }
]

Highcharts.chart('container',{
    chart: {
      marginTop: 10,height: 250
    },title: {
      text: null
    },credits: {
      enabled: false
    },legend: {
      align: "center",itemStyle: {
        fontSize: "11px !important"
      }
    },xAxis: {
      categories: chartdata[0].date,labels: {
        style: {
          fontSize: "11px !important",color: "#000"
        }
      },style: {
        fontSize: "15px !important",color: "#000"
      }
    },yAxis: [
      {
        min: 0,style: {
          fontSize: "10px",color: "red"
        },title: {
          text: ""
        },labels: {
          style: {
            fontWeight: 'bold',formatter: function () {
              return this.value;
            }
        },{
        linkedTo: 0,labels: {
          enabled:false,plotOptions: {
      series: {
        states: {
          hover: {
            enabled: true
          },inactive: {
            opacity: 1
          }
        },// let zero values have some height
        marker: {
          enabled: true
        },minPointLength: 10
      }
    },tooltip: {
      useHTML: false,followPointer: false
    },series: chartdata
  });

    

解决方法

您需要将数据转换为所需的时间段 - 只需跳过每三个值或对接下来的三个值求和。实现示例:

it.ozimov:embedded-redis

现场演示: https://jsfiddle.net/BlackLabel/wav86bm5/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?