使用LogAxisRenderer更改轴刻度

时间:2012-10-22 08:36:27

标签: javascript web-applications formatting plot jqplot

我使用jqPlot使用logAxisRenderer绘制数据,以获得两个对数轴。

除了两个问题外,一切都很好:

  1. jqPlot会在0和1之间创建大量空白区域。

  2. x轴上有两个零,因为我将数字格式化为"%' i" (一个用于0.0,一个用于0.5)。

  3. 我尝试使用min:1和max:100000来隐藏空白区域和零区域。但这并没有奏效。结果图没有线,所有x轴标签都位于轴左侧的同一位置。

    以下是我用来创建此图的代码:

    $.jqplot(divId, [ line ], {
        title : title,
        series:[{showMarker:false}],
        axes : {
            xaxis : {
                label:'Users',
                renderer : $.jqplot.LogAxisRenderer,
                tickOptions:{
                    tickDistribution: "power",
                    formatString: "%'i"
                },
                labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
            },
            yaxis : {
                label:'Frequency',
                renderer : $.jqplot.LogAxisRenderer,
                tickOptions:{
                    tickDistribution:"power",
                    formatString: "%'i"
                },
                labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
            },
        },
    });
    

1 个答案:

答案 0 :(得分:2)

您可以使用强制刻度来解决此问题:

$.jqplot(divId, [ line ], {
    title : title,
    series:[{showMarker:false}],
    axes : {
        xaxis : {
            label:'Users',
            renderer : $.jqplot.LogAxisRenderer,
            ticks: [1, 10, 100, 1000, 10000],
            tickOptions:{
                tickDistribution: "power",
                formatString: "%'i"
            },
            labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
        },
        // ...
    },
});

这并不能以一般方式解决您的问题,但确实有所帮助。对我来说(jqPlot 1.0.4r1121)设置" min:1"导致您描述的行为。设置" min:1"和"最大:10000"对我有用,但没有设置功率分布的滴答,但甚至间隔的。