highcharts - 日志轴不工作

时间:2017-03-15 06:11:45

标签: javascript highcharts

我有一个像这样的高图表代码:

Highcharts.chart('linechart', {

  chart: {
        backgroundColor:'rgba(255, 255, 255, 0.8)',
        borderRadius:5,
    },

    title: {
        text: 'ROC Graph'
    },

    subtitle: {
        text: 'Learning Evaluation'
    },
    xAxis: {
        min: 0,
        max: 1,
        tickWidth:1,
        tickPositions: [0.001, 0.01, 0.1,1]
    },
    yAxis: {
        max: 1,
        tickInterval:0.1,
        title: {
            text: 'Number of Employees'
        }
    },
    legend: {
        layout: 'vertical',
        align: 'right',
        verticalAlign: 'middle'
    },

    plotOptions: {
        series: {
            pointStart: 0.30
        }
    },



});

我的javascript代码:

for(j=0; j<data.roc_buffer[i]['xs'].length/10;j++){
      x_plot = data.roc_buffer[i]['xs'][10*j]
      y_plot = data.roc_buffer[i]['ys'][10*j]
      plot_buffer[j] = {'x':x_plot, 'y':y_plot}                  
 }
 roc_chart.addSeries({
     name: data.roc_buffer[i]['plotname'],
     data: plot_buffer

  });

这样做得很好 enter image description here

但是,我希望[0.001,0.01,0.1,1]都具有相同的宽度,所以我需要调整xaxis以输入logarithm。所以我将代码切换到:

xAxis: {
        type: 'logarithmic',
        minorTickInterval: 0.1
    },

现在这条线消失了......

此外,我的数据类似于

[{x:integer,y:integer},{x:integer,y:integer},{x:integer,y:integer},...]

1 个答案:

答案 0 :(得分:0)

我的理解。

您的xAxis和yAx都是动态生成的值。

您可以使用针对yAxis的setData方法和针对xAxis的setCategories设置数据。

$('#button').click(function () {
highchart.series[0].setData([1, 2, 4, 8, 16]);
highchart.xAxis[0].setCategories(['J', 'F', 'M', 'A', 'M']);});

或检查jsfiddle链接

http://jsfiddle.net/ashish8833/w3o0jzL7/1/