jqplot и метки данных с накопленным графиком - PullRequest
1 голос
/ 26 октября 2011

У меня проблема с jqplot и позиционированием меток данных на сложенных диаграммах.

Я строю три значения данных в столбце.Проблема в том, что когда одно из значений данных очень мало, например, 1%, метка данных перекрывает метку смежного значения данных.

Я загрузил изображение здесь: http://img84.imageshack.us/img84/1305/capturell.jpg

Я бы хотел разместить метки данных в середине каждой панели.Возможно ли это?

Вот код, который я использую:

 plot1 = $.jqplot(id, data, {
    seriesDefaults:{
      renderer:$.jqplot.BarRenderer,
      rendererOptions: {
         fillToZero: true,
          highlightMouseOver: false,
        highlightMouseDown: false,
        highlightColor: null,
        barDirection: 'horizontal'
      },
         pointLabels: { show: true, location: 'e', edgeTolerance: -15 }
    },
    title:{text: title,fontSize: 16},

    series:[
      {label: data_labels[0] },
      {label: data_labels[1]}

    ],
    seriesColors: [  "#4879a6", "#d9321d"], 

                // Rotate the bar shadow as if bar is lit from top right.
    shadowAngle: 135,

    axes: {
      xaxis: {
        min: 0,
        max: 100,
        tickInterval: 20,
        tickOptions: {formatString: '%d\%' ,fontSize: 14}
      },
      yaxis: {
         renderer: $.jqplot.CategoryAxisRenderer,
         ticks: ticks,
         tickOptions: {fontSize: 14}
      }
    }

Ответы [ 2 ]

2 голосов
/ 28 октября 2011

Помните, что seriesDefaults просто передает одно и то же значение каждому экземпляру серии, где он еще не определен. так что ...

 seriesDefaults:{pointLabels: {show: true, stackedValue: false, location:'s'}}, 

совпадает с

 series:[
             {pointLabels: {show: true, stackedValue: false, location:'s'}},           
             {pointLabels: {show: true, stackedValue: false, location:'s'}},
             {pointLabels: {show: true, stackedValue: false, location:'s'}}            
             ]  

на сайте jqplots он показывает этот пример. http://www.jqplot.com/deploy/dist/examples/point-labels.html

, который показывает значение, называемое y-padding, которое передается в pointLabels, что должно помочь. В этом же примере показано, как передавать пользовательские маркеры значений точек в массиве данных, передаваемых в jqplot. Меня бы не шокировало, если бы вы добавили немного html-кода для стилизации маркеров данных.

 var data = [[x,y,tooltipValue],[x,y,null]];    

Надеюсь, это поможет или, по крайней мере, направит вас в правильном направлении.

1 голос
/ 13 апреля 2012

попробуйте dataLabelPositionFactor proprety

...