У меня есть одна страница, на которой отображается гистограмма, и значения могут варьироваться от крошечного диапазона (от 0 до 30) до большого диапазона (от 0 до 10000).
Моя проблема заключается в отображении ее в видеdiv, который имеет максимальную высоту, в моем случае столбцы не могут быть больше 90 пикселей.
Один пример:
![bar graph](https://i.stack.imgur.com/kGlyZ.png)
Зная, что максимальная высота90px, я подумал о том, чтобы проверить, что является самым высоким столбцом (имеется в виду, что это 100%), а , тогда как остальные являются процентами от этого .Таким образом, я могу контролировать высоту (самая большая будет иметь 90 пикселей) каждого и оставаться в пределах высоты.
Пока мой код: (значения в этом коде не связаны сизображение выше)
$limitedHeight = 90;
$bar1 = 300;
$bar2 = 700;
$bar3 = 150;
$biggestBar = max(array($bar1, $bar2, $bar3));
//knowing this, I will force each bar to the limited height:
//first, for each, get the percentage:
$bar1Percent = intval(($bar1 * 100) / $biggestBar);
$bar2Percent = intval(($bar2 * 100) / $biggestBar);
$bar3Percent = intval(($bar3 * 100) / $biggestBar);
//then, force the new heights:
$bar1Height = intval(($bar1Percent * $limitedHeight) / 100);
$bar2Height = intval(($bar2Percent * $limitedHeight) / 100);
$bar3Height = intval(($bar3Percent * $limitedHeight) / 100);
//place the height into the bars:
echo '<div class="bar1" style="height: ' . $bar1Height . 'px"></div>
<div class="bar2" style="height: ' . $bar2Height . 'px"></div>
<div class="bar3" style="height: ' . $bar3Height . 'px"></div>';
Мой вопрос:
Это правильный подход?Или у кого-нибудь есть лучшее решение?
(У этого решения может быть одна проблема: если столбец "A" равен просто "10", а столбец "B" равен "1000", рассчитывается (ограничено) высота будет иметь огромное значение, но я полагаю, что это то, что есть, пропорция соблюдается).