dojox.charting: как выровнять plotArea 2 графика, один над другим? - PullRequest
0 голосов
/ 23 июня 2010

Я пытаюсь расположить 2 связанных графика, один над другим, аналогично тому, что вы можете увидеть на странице Google Finance.

Я могу отрисовать обе диаграммы просто отлично, но заставить выстроить plotAreas точно, немного загадочно. Кажется, что chart.plotArea.width каждой диаграммы зависит от ширины меток моей оси Y. Таким образом, 2 диаграммы не имеют одинаковую ширину и имеют разные значения для chart.getCoord().l.

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

 this.chart.render();  // top chart, getCoords().w=800

 // manually set margins for lower chart to match
 this.chartVol.margins.l = this.chart.offsets.l - 59 + 10;  
 this.chartVol.margins.r = this.chart.offsets.r - 31 + 10;

 // render bottom chart
 this.chartVol.render();  // bottom chart same width, getCoords().w=800

1 Ответ

0 голосов
/ 24 июня 2010

Есть два простых способа сделать это:

  1. Используйте maxLabelSize и labelFunc. Первый - это максимальный размер метки в пикселях. Последняя является функцией, которая принимает число и возвращает соответствующую строковую метку.
  2. Используйте labels, который является массивом {value, text} объектов, и включите одну длинную фиктивную строку желаемого размера в конце с некоторым поддельным значением.

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

...