在Rickshaw.js中设置Y轴网格密度

时间:2014-01-15 16:20:31

标签: javascript rickshaw

enter image description here

我有一个详细说明风速的图表,我希望Y轴上的网格每5(m / s)有一个滴答。 如何设置Y轴网格的密度?

// triggered when data has been loaded via ajax
$graph.on('graph.render', function(e, d) {
    var graph, y_axis;

    // Fixtures
    palette = new Rickshaw.Color.Palette();

    graph = new Rickshaw.Graph( {
        element: $graph.find('.chart');
        width: $graph.innerWidth() - 20,
        height: $graph.innerHeight() - 20,
        series: [
            {
                key: 'min',
                name: 'Min Wind Speed',
                color: palette.color(),
                data: d[0].data
            } // ...
        ]
    });

    x_axis = new Rickshaw.Graph.Axis.Time({
        graph: graph,
        timeUnit: {
            seconds: 600,
            formatter: function(d) {
                return d.toUTCString().match(/(\d+:\d+):/)[1];
            }
        }
    });

    y_axis = new Rickshaw.Graph.Axis.Y( {
        graph: graph,
        orientation: 'left',
        element: $graph.find('.y-axis')
    });
});

1 个答案:

答案 0 :(得分:4)

您可以通过ticks设置刻度数,或者通过tickValues明确显示值:

var yAxis = new Rickshaw.Graph.Axis.Y( {
  graph: graph,
  tickFormat: Rickshaw.Fixtures.Number.formatKMBT,
  //ticks: 5, //static number of ticks, only works 
  tickValues: [50,100,150,200,250,300,350], // values to use/display
  element: document.getElementById('y_axis')
} );

您可以使用tickstickValues,而不是两者。如果您使用上述tickValues且最大y值为180,则y比例仅显示值[50,100,150,200]250及以上将不会显示。如果添加更多具有更高y值的数据,则比例将自动重新缩放并显示您指定的更高值。

有关tickstickValues的更多信息,请访问D3's SVG axes页。