2013-09-11 3 views
0

Скажем, у меня есть простой диаграммы строки с 5 значений (a = 155, b = 200, c = 250, d = 300, e 0 345)Расчет диаграммы для YAxis

Мне нужен способ, чтобы вычислить, какие значения идут на Y-оси, таким образом, что значения выглядят хорошо. Я также хочу увидеть незначительные шаги.

Если я использую простую формулу я хотел бы сделать это:

MaxValue - Minvalue = difference 
300- 900 = 600 

За 5 шагов: 600/5 = 120 per step

Это привело бы к этим значения для Y-оси:

Y0 = 200.0 (Rounding off to 200)  
Y1 = 360.0 (Rounding off to 400)  
Y2 = 520.0 (Rounding off to 600)  
Y3 = 680.0 (Rounding off to 700)  
Y4 = 840.0 (Rounding off to 900)  
Y4 = 1000.0 (Rounding off to 1000) 

Что я на самом деле хотел бы val ЕЭС быть:

Y0 = 200  
Y1 = 400  
Y2 = 600  
Y3 = 800  
Y4 = 1000 

Но как рассчитать это?

Перед вычислением я не знаю величины значений, это может быть также как тысячи или десятки.

ответ

0

Не совсем то, что вы ожидаете, но может дать вам идею:

const int N = 6; 
double vals[N] = {200.0, 360.0, 520.0, 680.0, 840.0, 1000.0}; 
for (int i = 0; i < N; i++) { 
    double factor = pow(10.0, floor(log10(vals[i]))); 
    double v = floor(vals[i]/factor + 0.5) * factor; 
    std::cout << vals[i] << " " << v << std::endl; 
} 

P.S. Извините, это на C++, но вы можете легко перевести его на Java.

Смежные вопросы