473,396 Members | 2,011 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Logarithmic scale

Hi Is there a way to find a proper distance between large numbers.

For example, if i have a set of numbers like:
10, 40, 80, 100, 500, 10000
Now if I have to create a break points between these no.
I have to take an average & add that average to the starting number
like.
(10000 -10)/6 = 1665.
Now if I create a break point using this no. the break points will be:
10 - 1675, 1675 - 3340, 3340 - 5005, 5005 - 6670 ....
But the problem is that I can't use them as they are far apart like
all the first 5 no.'s will be in the first breakpoint, so its no help.

Can I use a formula like logarithmic scale in javascript to calculate
the breakpoint that are based on logarithmic scale.
Sep 25 '08 #1
6 4022
Sunny <su**********@gmail.comwrites:
Hi Is there a way to find a proper distance between large numbers.

For example, if i have a set of numbers like:
10, 40, 80, 100, 500, 10000
Now if I have to create a break points between these no.
I have to take an average & add that average to the starting number
like.
(10000 -10)/6 = 1665.
Now if I create a break point using this no. the break points will be:
10 - 1675, 1675 - 3340, 3340 - 5005, 5005 - 6670 ....
But the problem is that I can't use them as they are far apart like
all the first 5 no.'s will be in the first breakpoint, so its no help.

Can I use a formula like logarithmic scale in javascript to calculate
the breakpoint that are based on logarithmic scale.
You can use logarithms in javascript. See Math.log:

http://developer.mozilla.org/En/Core...jects:Math:log

I have no idea what you mean by break points or what you're trying to
do. It looks like you just want to split an ordered list in two, sort of:

x = Math.ceil(list.length / 2)
break_point = (list[x] - list[x+1]) / 2

If that doesn't help, please explain further.

--
Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/
Sep 25 '08 #2
Joost Diepenmaat <jo***@zeekat.nlwrites:
x = Math.ceil(list.length / 2)
break_point = (list[x] - list[x+1]) / 2
I meant Math.floor()

--
Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/
Sep 25 '08 #3
On Sep 25, 3:47 pm, Joost Diepenmaat <jo...@zeekat.nlwrote:
Joost Diepenmaat <jo...@zeekat.nlwrites:
x = Math.ceil(list.length / 2)
break_point = (list[x] - list[x+1]) / 2

I meant Math.floor()

--
Joost Diepenmaat | blog:http://joost.zeekat.nl/| work:http://zeekat.nl/
I have a series of numbers that i want to display on graph.
Numbers are like 10, 40, 80, 100, 500, 10000, 100000. there are 50
numbers
Like the last column has value that is really higher.
Here users can break this numbers into groups.
But when I take the average using the no. of groups they want (100000
-10)/6 = 16665.
so the groups come out 10 - 16665.
Now if i have to display this data on chart.
all the 30 points come under group 10 - 16665 & couple of groups
remain empty like 1ike no value exists in them because the difference
between the lowest & highest element is too big(10,100000). So I want
a method that computes an average or create groups based on logic.
Sep 25 '08 #4
"Sunny" <su**********@gmail.com>
I have a series of numbers that i want to display on graph.
Numbers are like 10, 40, 80, 100, 500, 10000, 100000. there are 50
numbers
Like the last column has value that is really higher.
Here users can break this numbers into groups.
But when I take the average using the no. of groups they want (100000
-10)/6 = 16665.
so the groups come out 10 - 16665.
Now if i have to display this data on chart.
all the 30 points come under group 10 - 16665 & couple of groups
remain empty like 1ike no value exists in them because the difference
between the lowest & highest element is too big(10,100000). So I want
a method that computes an average or create groups based on logic.
First take the log (as said by JD, see Math; remember that 10-base log(x) =
ln(x)/ln(10) ) of all points into a new series.
Do your groupings with this new series and display.
The y-axis will now run from say -0.3 to 4.2. Round these min and max values
down resp up to -1 and 5.
Display the axis where you transform the values y to 10^y (e.g. 0.1, 1, 10,
100, 1000, 10000).

Tom
Sep 25 '08 #5
Sunny wrote:
Hi Is there a way to find a proper distance between large numbers.
alt.homework is elsewhere. You do yourself no favor at all by not doing
your homework by yourself. Trust me.
PointedEars
--
Prototype.js was written by people who don't know javascript for people
who don't know javascript. People who don't know javascript are not
the best source of advice on designing systems that use javascript.
-- Richard Cornford, cljs, <f8*******************@news.demon.co.uk>
Sep 26 '08 #6
On 25 sep, 21:15, Sunny <sunnyluth...@gmail.comwrote:
Hi Is there a way to find a proper distance between large numbers.

For example, if i have a set of numbers like:
10, 40, 80, 100, 500, 10000
Now if I have to create a break points between these no.
I have to take an average & add that average to the starting number
like.
(10000 -10)/6 = 1665.
Now if I create a break point using this no. the break points will be:
10 - 1675, 1675 - 3340, 3340 - 5005, 5005 - 6670 ....
I do see all these evaluate to -1665, but I don't understand what you
further mean. I really think you should rephrase the problem in a
clearer way. Anyway, I think your algorithm would go like this:

var nrs = [10, 40, 80, 100, 500, 10000];
var breakpoints = new Array();
var f = (nrs[nrs.length-1] - nrs[0]) / nrs.length;
for (var i=0; i<nrs.length; i++)
breakpoints[i] = i * f - ((i+1) * f);
document.write(breakpoints); // -1665 for every entry
[...]
Now if i have to display this data on chart.
Line chart:
http://code.google.com/apis/chart/#line_charts

var nrs = [10, 40, 80, 100, 500, 10000];
document.write('<img src="http://chart.apis.google.com/chart?'
+ 'chxt=y'
+ '&chxl=0:|0|'
+ nrs[nrs.length-1]/2 + '|' + nrs[nrs.length-1]
+ '&chs=400x400'
+ '&cht=lc'
+ '&chds=0,' + nrs[nrs.length-1]
+ '&chd=t:' + nrs
+ '">');

Pie chart:
http://code.google.com/apis/chart/#pie_charts

var nrs = [10, 40, 80, 100, 500, 10000];
var perc = new Array();
var sum = 0;
for (var i=0; i<nrs.length; i++)
sum += nrs[i];
for (var j=0; j<nrs.length; j++)
perc[j] = nrs[j] / sum;
document.write('<img src="http://chart.apis.google.com/chart?'
+'chs=750x300'
+ '&chd=t:' + perc
+ '&cht=p3'
+ '&chl=' + nrs.join('|')
+ '">');

Hope this helps,

--
Bart
Sep 28 '08 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: John Fouhy | last post by:
So I've got a horizontal scale widget in my GUI. When I click the mouse in the area to the right of the GUI, the scale advances by 1. 13 +-------------------------+ |<| X |>|...
4
by: codecraig | last post by:
Hi, I am using Tkinter and I have a Label and a Scale. I want to update my label everytime the Scale value changes. What is the best way of doing this? Do i have to bind for every event type? ...
1
by: Andre | last post by:
Hi, I'm trying to plot a histogram on some data that I receive at runtime. I'm trying to measure distances between two points, and these distances can be from the range 1 to 5000000. I want to...
8
by: Derek Basch | last post by:
Can anyone give any suggestions on how to make a logarithmic (base 10) x and y axis (loglog) plot in matplotlib? The scatter function doesn't seem to have any log functionality built into it. ...
8
by: Derek Basch | last post by:
Given a value (x) that is within the range (1e-1, 1e7) how do I round (x) up to the closest exact logarithmic decade? For instance: 10**3 = 1000 x = 4978 10**4 = 10000 x = 10000 Thanks...
3
by: Jerry Spence1 | last post by:
A very useful feature was added in 2.0 of .NET framework which was the scaling of a form and all the controls within it. This is really useful but I am finding very little information of how to use...
0
by: TonyJ | last post by:
Hello! We have a pc running a form application. If I push some buttons in this application I want to send some commands to a scale which is connected to a specific IP address. When I sent a...
5
by: different | last post by:
Hi, I have a program which reads a file containing integers in . The program reads the value of a variable every 2 seconds, then maps it to another interval, say , obtaining a new value. I already...
19
by: Matteo Migliore | last post by:
Hi! I've to scale a vector of numbers of size N to a vector of size M. The trasformation is like a zoom on images but I need on a vector. The second size can be M >= N or M <= N, M 0. The...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.