我正在用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
答案 0 :(得分:0)
您需要一种方法将[0.00 5.00]
之间的任何浮点数映射到Y轴点。
Y轴的粒度为0.25
。因此,您可以将输入除以0.25
以获得Y轴上的精确点。但是这个值可能介于两点之间,例如输入为0.3
而0.3/0.25
为1.
2且Y轴上没有1.2
。
为了解决这个问题,我们将范围+|-0.125
与每个Y轴编号相关联。所以1.0的范围为0.75
到1.25
,任何输入/ 0.25落在[0.75 1.25]的输入都将1.00
作为其Y轴点。
在PHP中,您可以这样做:
$Y_cord = ceil ( $input / 0.25 - 0.125) * 0.25;
您可以看到随机数据集here的映射。