PHP, учитывая серию произвольных чисел, как я могу выбрать логическое макс. значение на линейном графике?

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

3500
250
10049
45394
434
312
       Max value on line graph should probably be 50000

493
412
194
783
457 
344
     max value on line graph would ideally be 1000

545
649
6854
5485
11545 
      In this case, 12000 makes sense as max value

Так что-то столь же простое, как округление вверх к ближайшей тысячной части могло бы работать, но мне будет нужен он для прогрессивного увеличения, поскольку числа стали больше. (50000 вместо 46 000 в первом примере) максимум, которым когда-либо будут эти числа, является приблизительно миллионом.

Любые рекомендации значительно ценились бы, спасибо.

Вот то, что я обосновался, спасибо всем за Ваши комментарии:

private function FigureMaxValue($array)
    {   
      $highestNumber = max($array);
      if ($highestNumber == 0) return 0;
      $highestNumber = $highestNumber * 1.1;
      (float)$highestNumber = round((float)$highestNumber, 0); 
      $maxValue = ceil( (integer)$highestNumber / 100 ) * 100;
      return $maxValue;
    } 
8
задан stormist 11 May 2010 в 21:58
поделиться

2 ответа

Я бы просто сделал величину выше наибольшего значения, например $highestValue * 1.05 или что-то в этом роде. Вы все равно столкнетесь с проблемой выбросов IE -

4
5
12
2
1
4
4266

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

1
ответ дан 6 December 2019 в 00:54
поделиться
 1. $numbers = array(3500, 250, 10049, 45394, 434, 312)
 2. $highestNumber = max($numbers)
 3. $n = 10 ^ (strlen($highestNumber) - 1)
 4. $highestNumber = $highestNumber / $n
 5. $newMax = ceil($n)
 6. $newMax = $newMax * $n
2
ответ дан 6 December 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: