h00ligan
08-13-2004, 05:28 AM
Thanks for reading this post, I am trying to get this line chart to work however it doesnt want to plot the vertical points. I think it maybe with the var 'ha'... Any help would be greatly appreciated.
linea = new Array("3", "24", "12", "6", "4");
counta = linea.length;
maxa = 0;
for (indexx = 0; indexx < counta; indexx++)
{
maxa = math.max(maxa, linea[indexx]);
}
highval = math.max(maxa);
var stageheight = 250;
var stagewidth = 440;
var marginleft = 50;
var marginright = 50;
var marginbottom = 50;
var margintop = 50;
// set limits
var originx = marginleft;
var originy = stageheight - marginbottom;
var availx = (stagewidth - marginleft) - marginright;
var availy = (stageheight - marginbottom) - margintop;
var maxx = stagewidth - marginright;
// get each value in each array and translate it to ratio of
// highval to make max use of space. // hr = height ratio
var hr = availy / highval;
ha = new Array();
for (i = 0; i < counta; i++)
{
if (hr > 1)
{
ha[i] = linea[i] * hr;
}
else
{
ha[i] = linea[i] / hr;
}
}
// increments
// x is available width / count + 1;
xinc = availx / (counta);
_root.createEmptyMovieClip("amovie", 1);
with (_root.amovie)
{
// first set up inital values
var x_a = originx;
var y_a = originy;
// draw grid
// horizontal lines
for (i = 0; i < 9; i++)
{
lineStyle(1, 0xcccccc, 100);
moveTo(x_a, y_a);
lineTo(maxx, y_a);
y_a = y_a - (availy / 8);
}
// reset up inital values
var x_a = originx;
var y_a = originy;
// height of the chart
for (indexa = 0; indexa < (counta + 1); indexa++)
{
lineStyle(1, 0xcccccc, 100);
moveTo(x_a, y_a);
lineTo(x_a, margintop);
x_a = x_a + xinc;
}
// reset up inital values
var x_a = originx;
var y_a = originy;
// now get each result from the arrays
for (indexa = 0; indexa < counta; indexa++)
{
lineStyle(2, 0xE49111, 100);
moveTo(x_a, y_a);
x_a = x_a + xinc;
y_a = originy - ha[indexa];
lineTo(x_a, y_a);
}
}
linea = new Array("3", "24", "12", "6", "4");
counta = linea.length;
maxa = 0;
for (indexx = 0; indexx < counta; indexx++)
{
maxa = math.max(maxa, linea[indexx]);
}
highval = math.max(maxa);
var stageheight = 250;
var stagewidth = 440;
var marginleft = 50;
var marginright = 50;
var marginbottom = 50;
var margintop = 50;
// set limits
var originx = marginleft;
var originy = stageheight - marginbottom;
var availx = (stagewidth - marginleft) - marginright;
var availy = (stageheight - marginbottom) - margintop;
var maxx = stagewidth - marginright;
// get each value in each array and translate it to ratio of
// highval to make max use of space. // hr = height ratio
var hr = availy / highval;
ha = new Array();
for (i = 0; i < counta; i++)
{
if (hr > 1)
{
ha[i] = linea[i] * hr;
}
else
{
ha[i] = linea[i] / hr;
}
}
// increments
// x is available width / count + 1;
xinc = availx / (counta);
_root.createEmptyMovieClip("amovie", 1);
with (_root.amovie)
{
// first set up inital values
var x_a = originx;
var y_a = originy;
// draw grid
// horizontal lines
for (i = 0; i < 9; i++)
{
lineStyle(1, 0xcccccc, 100);
moveTo(x_a, y_a);
lineTo(maxx, y_a);
y_a = y_a - (availy / 8);
}
// reset up inital values
var x_a = originx;
var y_a = originy;
// height of the chart
for (indexa = 0; indexa < (counta + 1); indexa++)
{
lineStyle(1, 0xcccccc, 100);
moveTo(x_a, y_a);
lineTo(x_a, margintop);
x_a = x_a + xinc;
}
// reset up inital values
var x_a = originx;
var y_a = originy;
// now get each result from the arrays
for (indexa = 0; indexa < counta; indexa++)
{
lineStyle(2, 0xE49111, 100);
moveTo(x_a, y_a);
x_a = x_a + xinc;
y_a = originy - ha[indexa];
lineTo(x_a, y_a);
}
}