使用PHP的imageline()查找线图上的点的y轴

时间:2010-10-07 06:20:46

标签: php math

我正在用PHP创建一个使用imagecreate()和imageline()的折线图。我想弄清楚如何进行计算以找到图上每个点的y轴。

以下是图表中的一些值:

$values[jan] = .84215;
$values[feb] = 1.57294;
$values[mar] = 3.75429;

以下是折线图的示例。 x轴标签位于x轴线的垂直中间。 x轴线之间的间隙为25px。

如何进行计算以找到上面数组中值的y轴?

5.00
4.75
4.50
4.25
4.00
3.75
3.50
3.25
3.00
2.75
2.50
2.25
2.00
1.75
1.50
1.25
1.00
0.75
0.50
0.25
0.00
     Jan  Feb  Mar  apr  may  jun  jul  aug  sep  oct  nov  dec

1 个答案:

答案 0 :(得分:0)

您需要一种方法将[0.00 5.00]之间的任何浮点数映射到Y轴点。

Y轴的粒度为0.25。因此,您可以将输入除以0.25以获得Y轴上的精确点。但是这个值可能介于两点之间,例如输入为0.30.3/0.251. 2且Y轴上没有1.2

为了解决这个问题,我们将范围+|-0.125与每个Y轴编号相关联。所以1.0的范围为0.751.25,任何输入/ 0.25落在[0.75 1.25]的输入都将1.00作为其Y轴点。

在PHP中,您可以这样做:

$Y_cord = ceil ( $input / 0.25 - 0.125) * 0.25;

您可以看到随机数据集here的映射。