Php 根据可用高度限制图形中条形的高度

Php 根据可用高度限制图形中条形的高度,php,graph,height,Php,Graph,Height,我有一个页面显示一个条形图,数值可以从很小的范围(0到30)到很大的范围(0到10000) 我的问题是在具有最大高度的div中显示它,在我的情况下,条不能超过90px 一个例子: 知道最大高度是90px,我想做的是检查哪个条是最高的(意思是这条是100%),然后其他条是该条的百分比。这样,我可以控制每个的高度(最大的将有90px),并保持在高度的极限范围内 到目前为止我的代码:(此代码中的值与上图无关) $limitedHeight=90; $bar1=300; $bar2=700; $bar

我有一个页面显示一个条形图,数值可以从很小的范围(0到30)到很大的范围(0到10000)

我的问题是在具有最大高度的div中显示它,在我的情况下,条不能超过90px

一个例子:

知道最大高度是90px,我想做的是检查哪个条是最高的(意思是这条是100%),然后其他条是该条的百分比。这样,我可以控制每个的高度(最大的将有90px),并保持在高度的极限范围内

到目前为止我的代码:(此代码中的值与上图无关)

$limitedHeight=90;
$bar1=300;
$bar2=700;
$bar3=150;
$biggestBar=max(数组($bar1,$bar2,$bar3));
//知道了这一点,我将强制每个酒吧到有限的高度:
//首先,对于每个,获取百分比:
$bar1Percent=intval($bar1*100)/$biggestBar);
$bar2Percent=intval($bar2*100)/$biggestBar);
$bar3Percent=intval($bar3*100)/$biggestBar);
//然后,强制达到新的高度:
$bar1Height=intval($bar1Percent*$limitedHeight)/100);
$bar2Height=intval($bar2Percent*$limitedHeight)/100);
$bar3Height=intval($bar3Percent*$limitedHeight)/100);
//将高度放入杆中:
回声'
';
我的问题:

这是正确的方法吗? 还是有人有更好的解决方案?


(此解决方案可能有一个问题:如果条形图“A”仅为“10”,而条形图“B”为“1000”,则计算出的(有限)高度将有巨大差异,但我认为这就是它的实际情况,比例受到尊重)。

您可以计算一个适用于所有条形图的比例因子:

$scale = $limitedHeight / $biggestBar;

$bar1Height = intval($bar1 * $scale);
$bar2Height = intval($bar2 * $scale);
$bar3Height = intval($bar3 * $scale);
这将稍微简化您的计算,但总体方法似乎是合理的。当你使用线性比例尺时,高差过大的问题是不可避免的。

nice:)确实简化了,谢谢。。。让我等待其他人的答复。
$scale = $limitedHeight / $biggestBar;

$bar1Height = intval($bar1 * $scale);
$bar2Height = intval($bar2 * $scale);
$bar3Height = intval($bar3 * $scale);