Ось даты jqPlot - бары нарисованы не в тот день? - PullRequest
2 голосов
/ 14 ноября 2011

Довольно простые вещи здесь:

   var dataHits = [['2011-10-16',1],['2011-11-05',7],['2011-11-06',1],['2011-11-09',2],['2011-11-12',5]];
   var plot1 = $.jqplot('chartHits', [dataHits], {
      title:'Zobrazenia profilu spolu',
      seriesDefaults:{
                renderer:$.jqplot.BarRenderer,
                rendererOptions: {            
            barPadding: 0,      // number of pixels between adjacent bars in the same
                                // group (same category or bin).
            barMargin: 0,      // number of pixels between adjacent groups of bars.
            barDirection: 'vertical', // vertical or horizontal.
            barWidth: 10

        }                
            },
      axes:{
        xaxis:{                    
          renderer:$.jqplot.DateAxisRenderer,
          min: '2011-10-15',
          max: '2011-11-13',
          tickInterval: "2 day",
          tickOptions:{
            formatString:'%d.%m'
          }          
        },
        yaxis:
        {
          min: 0,
          tickInterval: 1
        }        
      },
      highlighter: {
        show: true,
        sizeAdjust: 7.5
      },
      cursor: {
        show: false
      }
   });

Но сгенерированный график неверен - первое значение нарисовано ОК - 16.10.2011, но все остальные значения (столбцы) расположены неправильно - на один день раньше, чем онидолжно быть (даже их «всплывающая подсказка», когда выделено в порядке, они просто не в том месте на оси х).Есть идеи как это исправить?

Смотри картинку: enter image description here

1 Ответ

1 голос
/ 29 мая 2012

Я думаю, что в целом, когда вы имеете дело с гистограммами, вы всегда должны использовать галочки, чтобы иметь более хороший сюжет. Также для вашей проблемы вы получаете интересные результаты при использовании этого подхода, пожалуйста, см. Здесь. Здесь вам нужно помнить, что если вы не хотите ничего показывать в те дни, которые не указаны в dataHits, вы бы нужно предоставить их, а просто дать им значение 0.

Интересные результаты, которые вы получаете ( надеюсь, что это то, что вам нужно ), когда вы используете возможности ticks и dateAxisRenderer. Это показано в следующем примере. Здесь пропуски, показывающие временное расстояние между показаниями, сохраняются, и все значения отображаются правильно. Также важно отметить, что min, max и tickInterval не имеют никакого эффекта, так как мы используем тики.

Кстати: Если вы все еще хотите, чтобы в диаграмме были пробелы, вы можете применить подход, представленный в РЕДАКТИРОВАНИИ этого ответа .

...