Draws Textual Histogram / BarGraph from an Integer Array

Produces a textual representation of the data in an integer array. It efficentely and compactly counts the occurences of each value, converts it to a percentage and dispays it graphically.

Terms of Agreement:
By using this code, you agree to the following terms...
1) You may use this code in your own programs (and may compile it into a program and distribute it in compiled format for languages that allow it) freely and with no charge.
2) You MAY NOT redistribute this code (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.
3) You may link to this code from another website, but ONLY if it is not wrapped in a frame.
4) You will abide by any additional copyright restrictions which the author may have placed in the code or code's description.


//**************************************
//
// Name: Draws Textual Histogram / BarGr
// aph from an Integer Array
// Description:Produces a textual repres
// entation of the data in an integer array
// . It efficentely and compactly counts th
// e occurences of each value, converts it
// to a percentage and dispays it graphical
// ly.
// By: Zach Bastick
//
// Inputs:An integer array (e.g. int[],
// or ArrayList), the minimu
// m value in array and the maximum value i
// n the array (for graphing purposes).
//
// Returns:An illustration similar to th
// is:
1.36% 10 |xx
3.52% 9 |xxxx
3.27% 8 |xxxx
8.12% 7 |xxxxxxxxx
10.91% 6 |xxxxxxxxxxx
13.12% 5 |xxxxxxxxxxxxxx
14.6% 4 |xxxxxxxxxxxxxxx
14.69% 3 |xxxxxxxxxxxxxxx
12.74% 2 |xxxxxxxxxxxxx
10.62% 1 |xxxxxxxxxxx
6.98% 0 |xxxxxxx
total: 11776
//
//This code is copyrighted and has// limited warranties.Please see http://
// www.Planet-Source-Code.com/vb/scripts/Sh
// owCode.asp?txtCodeId=4915&lngWId=2//for details.//**************************************
//



public void listDistribution(ArrayList list, int minValue, int maxValue){
int[] count = new int[maxValue-minValue+1];
float[] percentage = new float[maxValue-minValue+1];
for(int i=0; i count[i]=0;
for(int i=0; i count[list.get(i)-minValue]++;
for(int i=0; i percentage[i] = ((count[i]/(float)list.size())*100);
for(int i=maxValue; i>=minValue; i--){ //display
System.out.print(((int)(percentage[i]*100))/(float)100+"%\t"+i+"\t|");
for(int j=0; j System.out.print("x");
System.out.print("\n");
}

System.out.println("total: "+list.size());
}

original posted in http://www.planetsourcecode.com

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Read Comments

0 comments:

Post a Comment