Столбец с накоплением JQPlot каждый счетчик суммированных меток вместо накопленного (инкрементного) - PullRequest
6 голосов
/ 22 декабря 2011

Я хочу отображать текст метки вместо общего количества сегментов для каждой метки.

Например, 2, 7, 14 должны быть в столбце с накоплением с 2, 7, 14, а затем 23 - всего.Но в настоящее время в exmaple он показывает итоговый сегмент - первый бар пуст, а затем 2, 2 + 7 = 9 и итоговый = 23 (9 + 14).

Показывает график JQ (столбчатая диаграмма столбца с накоплением - 3-йграфик): http://www.jqplot.com/tests/bar-charts.php

Я хочу, чтобы этот URL был похож на старшую диаграмму для подсчета меток, см. пример: http://www.highcharts.com/demo/column-stacked

Пожалуйста, дайте мне знать, если я смогу найти решение, тогда это было бы очень полезно...

Ответы [ 4 ]

6 голосов
/ 24 апреля 2012

У меня есть решение, так как кажется, что независимо от значения параметра stackedValue значения суммированных баров всегда суммируются.

Мое решение этой проблемы включало:

  • добавление еще одной серии, которая служит суммой, значения, которые вы заполняете, одинаковы (т.е. 3), поскольку их единственная роль заключается в размещении меток,

  • делает последнюю серию (5-ю) невидимой, а ее тень почти прозрачной,

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

Мое решение можно найти здесь.


EDIT

Я недавно заметил, что здесь уже есть решение этой проблемы.

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

По вопросу суммирования: вы наткнулись на ошибку jqplot.

Если вы откроете jqplot.pointLabels.js, взгляните на код, начинающийся со строки 172/173:

var d = this._plotData;

Если вы обновите его, чтобы прочитать

var d = this._plotData; 
if (p.stackSeries) {
    var d = this.data;
}

Когда вы вызываете диаграмму, используйте что-то похожее на это в опциях вашей серии:

pointLabels: { show: true, stackedValue: false, stackSeries: true }

Вы сможете использовать атрибут PointLabels stackedValue для отключения суммированного суммирования.

Подробная информация об исправлении ошибки в stackedValue здесь .

jmva ответила на ваш вопрос относительно размещения этикетки.

0 голосов
/ 16 мая 2014

Решение Боро работает для меня, однако, если вам нужна легенда, у вас будет еще один элемент в легенде, который может не соответствовать вашим ожиданиям. Я использовал решение Боро и имею легенду, независимую от объекта jqplot.

0 голосов
/ 14 марта 2012

Чтобы отобразить значения внутри панели, просто измените свойство css .jqplot-point-label на локальной странице, это работает на демонстрационной странице JQPlot:

.jqplot-point-label {
      font-size:.75em;
      z-index: 2;
      /* Add some margin to get values into the bar */
      margin-top: 24px;
}

Вы также можете попробовать PointLabel свойства, такие как ypadding, для более вежливого подхода. Для суммирования функций обратитесь к этой решенной теме .

...