Highcharts - пропустить дату в серии - PullRequest
4 голосов
/ 24 ноября 2010

Итак, я извлекаю некоторые данные из базы данных и получаю метку времени UNIX и число.Допустим, N (число) было продано на D (дата).

Дни пропали, например, выходные.Мне нужно, чтобы он по-прежнему отображал день, но не требовал никаких данных.Это линейный график.

1 апреля 2010 г., 50 продано
2 апреля 2010 г., 53 продано
7 апреля 2010 г., 10 продано
(у меня более 1000 записей за несколько лет -поэтому я также добавлю масштаб)

Таким образом, график все еще должен показывать 1-7 апреля, но не иметь данных для 3-6.(строка будет идти от 2-7).

Есть идеи, как это сделать?

Спасибо, Джош

Ответы [ 4 ]

4 голосов
/ 02 декабря 2010

посмотрите здесь: http://highcharts.com/ref/#series второй пример свойства 'data'.

Вам просто нужно преобразовать дату mysql, преобразовать ее в метку времени UNIX (UNIX_TIMESTAMP ()), а затем умножитьэто на 1000 (JS нужно время в микросекундах) ...

1 голос
/ 21 декабря 2011

Если возможно, тогда вы можете показать мне свой код.

Может быть, эта ссылка поможет вам. демо, чтобы указать ноль для данной даты: http://jsfiddle.net/highcharts/FGRtd/

1 голос
/ 25 ноября 2010

Масштабируйте ось X ваших данных при создании диаграммы, чтобы подсчитывать только дни, когда у вас есть хотя бы одна продажа, и просто убедитесь, что ваша ось имеет разумную маркировку.весь ваш набор данных и обеспечение его последовательных номеров.Так что это может быть не очень эффективно и, безусловно, может принести пользу для предварительной обработки (еще один ключ в вашей базе данных для «дня продажи» или что-то в этом роде).

0 голосов
/ 15 декабря 2010

Вы можете построить свои данные как обычные данные Y и использовать форматтер по оси x

dates = ['April 1 2010', 'April 2 2010', 'April 7 2010'];
numSold = [50, 53, 10];

chart = new Highcharts.Chart({
    series: [{
        type: 'line',
        data: numSold
    }],
    xAxis: {
        labels: {
            formatter: function() {
                var dateStr = dates[this.value];
                return dateStr;
            }
        }
    }
});
...