jQPlot Дата на оси X Интервал тика не работает

Обратитесь к приложенному изображению. Строки даты из php в формате Ymd нанесены на ось x. Но, как вы можете видеть, чем больше дат, тем больше они аннулированы. Я хотел использовать свойство tickInterval в jqplot, но оно просто не работает!

Он полностью игнорирует интервал и просто отображает каждый день. Так что, если у меня есть 1000 дней, это становится совершенно нечитаемым.

var plot1 = $.jqplot("analyse-bottom-left",[yValues],{
            highlighter: { show: true, tooltipAxes: 'both' },
            seriesDefaults:{
                //renderer:$.jqplot.BarRenderer,
                rendererOptions: {fillToZero: true},


            },
            axesDefaults:{
                tickRenderer: $.jqplot.CanvasAxisTickRenderer,

            },
            legend: {
                show: true,
                placement: 'outsideGrid'
            },
            //series:seriesNames,
            axes:{
                xaxis:{
                    renderer: $.jqplot.CategoryAxisRenderer,
                    rendererOptions: { tickRenderer: $.jqplot.dateAxisRenderer },
                    ticks:xValues,
                    tickOptions:{
                        angle:30,
                        formatString:'Y-m-d'
                    },
                    tickInterval:'2 days'

                },
                yaxis:{

                    tickOptions: {formatString: '£%d'}
                }

            }    
        });

1 ответ

Ваш xaxis параметры не действительны. Вы установили это как CategoryAxisRenderer а затем попробуйте установить галочки как DateAxisRenderer, Это не будет работать, потому что сама ось должна использовать DateAxisRenderer,

Попробуй это:

xaxis:{
    renderer: $.jqplot.DateAxisRenderer,
    ticks: xValues,
    tickOptions:{
        angle: 30,
        formatString: '%Y-%m-%d'
    },
    tickInterval: '2 days',
    min: xValues[0]
}

Я создал jsfiddle, чтобы продемонстрировать использование. У jqPlot есть много причуд - в этом случае, чтобы заставить tickInterval работать, вы должны указать значение 'min'.

Другие вопросы по тегам