在highcharts系列中传递3个值

时间:2016-04-18 00:19:33

标签: javascript function variables highcharts scatter-plot

我有一张来自Highcharts的散点图,在y轴上我放了强度'值,在x轴上我有日期时间(月,日,年)。

chart: {
  type: 'scatter',
  zoomType: 'xy',
  renderTo: 'chartContainer'
},
rangeSelector: {
  enabled: true
},
xAxis: {
  title: {
    enabled: true
  },
  type: 'datetime',
  dateTimeLabelFormats:{
    month: '%e. %b %Y',
    year: '%b'
  },
  startOnTick: true,
  endOnTick: true,
  showLastLabel: true
},
yAxis: {
  title: {
    text: 'Intensity'
  },
  min: 0,
  max: 100
},
plotOptions: {
  scatter: {
    marker: {
      radius: 5,
      states: {
        hover: {
          enabled: true,
          lineColor: 'rgb(100,100,100)'
        }
      }
    },
    states: {
      hover: {
        marker: {
          enabled: false
        }
      }
    },
    events: {
      click: function(event) {

        showMoreData();


      }
    }
  }
},
series: [{
  name: 'Male',
  color: 'rgba(144,36,58, .8)',
  data: getDataParsed()
}]

这些数据是从另一个函数getDataParsed()加载的,我在其中执行ajax GET并获取多个数据。问题是我如何传递更多数据(也包括强度和日期时间),以便稍后在散点图中使用。

function getDataParsed() {

var serie = [];

var i=0;
dolorCollect.forEach(function (dato) {


var arr = dato.FECHA_INICIO.split("/");
var hour = dato.HORA_INICIO.split(":");

serie[i]=     [Date.UTC(arr[2],arr[1]-1,arr[0],hour[0],hour[1]),dato.INTENSIDAD_DOLOR];


i++;

});

return serie;

}

1 个答案:

答案 0 :(得分:1)

在每个数据点中串联更多数据'数据你可以:

  1. 在其评论中建议 Rahul Sharma - 将数据点设置为具有命名属性的对象。 API中的更多信息 - 请参阅第三种数据格式:
  2.   

    具有命名值的对象数组。对象是点配置对象,如下所示。如果数据点的总数超过系列' turboThreshold,此选项不可用。

    data: [{
        x: 1,
        y: 2,
        name: "Point2",
        color: "#00FF00"
    }, {
        x: 1,
        y: 4,
        name: "Point1",
        color: "#FF00FF"
    }]
    
    1. 或将数据设置为数组数组 - 就像现在一样,但是在点数组中有更多数据。允许Highcharts正确解码新格式集keys
    2. 因此可以使用以下代码设置相同的数据:

      series:[{
        data: [
          [1, 2, "Point2", "#00FF00"], 
          [1, 4, "Point1", "#FF00FF"]
        ],
        keys: ['x','y','name','color'],
        ...