Есть ли простой способ определить минимальное и максимальное значения для графика? - PullRequest
0 голосов
/ 01 февраля 2020

Заголовок, возможно, говорит сам за себя: для диаграммы мне бы хотелось установить минимальное и максимальное значения (и интервал шага) разумным (округленным) способом. Диаграмма Microsoft, развернутая с Visual Studio, этого не делает - она ​​берет именно то число, которое вы ей даете, что выглядит странно, если ваша ось имеет 8 или 10 цифр после десятичной дроби.

Диаграмма отображает фондовый рынок цены, так что у меня есть приблизительное представление о величине чисел, но они все еще сильно различаются.

Например, для графика, который имеет минимум на 21,5, максимум на 27,9, шкалу от 20 до 30 с шагом 2 звучит разумно. Это было бы 4 промежуточных значения, 22, 24, 26 и 28.

Для 21,5–77,9 может иметь смысл что-то вроде 20–80, только с 2 шагами между: 40 и 60. Или 5 шагов с приращение 10: 30, 40, 50, 60, 70.

Значения могут быть сотнями: от 321 до 328 -> 320 до 330, вероятно. От 321 до 389 -> от 320 до 390, с шагом 10 или 20. 321 до 821 -> от 300 до 900 - это то, что 100 может выглядеть хорошо. 400, 500, 600, 700, 800 с шагом, 5 шагов.

Пока это было легко, подумайте об этом случае: от 321 до 481 -> от 300 до 500, кажется, легко решить, но для шагов ... только 400, один промежуточный, не хорошо. Я хотел бы видеть 50-е годы: 350, 400, 450, то есть 3 хороших промежуточных звена. Возможно, сработает и 25 с.

Значения для отображения также могут быть только одиночными ди git до десятичной дроби (4.12) или тысячами.

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

Интересно, есть ли более прямой подход без необходимости делать это для каждой силы? из 10, которые могут встретиться, на обоих концах оси (мин и макс).

...