Hi, I sent a post earlier about displaying a histogram. So I took the
example code given by a previous histogram question and tried to display it
using scalar maps and such, but the plot displayed a line and not a
histogram. Whats wrong with this code and how do i get to show a real
histogram?
Ravin Soni
import visad.*;
import visad.java3d.DisplayImplJ3D;
import visad.java2d.DisplayImplJ2D;
import java.rmi.RemoteException;
import java.awt.Font;
import javax.swing.*;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company:
* @author
* @version 1.0
*/
public class Histogram {
private RealType time, height;
private FunctionType func_time_height;
private visad.Set time_set;
private FlatField vals_ff;
private DataReferenceImpl data_ref;
private DisplayImpl display;
private ScalarMap distanceToOutMap, numLinksMap;
public Histogram() throws RemoteException, VisADException
{
init();
}
// The constructor for our example class
public void init() throws RemoteException, VisADException {
RealType numLinks = RealType.Generic;
RealType distanceToOut = RealType.Generic;
FunctionType func_distanceToOut_numLinks = new
FunctionType(distanceToOut, numLinks);
Linear1DSet distanceToOut_set = new Linear1DSet(0, 1, 10000);
float[][] NumL_vals = new float[1][10000];
for (int i=0;i<10000;i++) NumL_vals[0][i]=(float) Math.random();
FlatField vals_ff = new FlatField( func_distanceToOut_numLinks,
distanceToOut_set);
vals_ff.setSamples( NumL_vals );
Linear1DSet bins = new Linear1DSet(0.05, 0.95, 10);
FlatField hist = visad.math.Histogram.makeHistogram(vals_ff, bins);
numLinksMap = new ScalarMap( numLinks, Display.YAxis );
distanceToOutMap = new ScalarMap( distanceToOut, Display.XAxis );
//create display
display = new DisplayImplJ2D("display1");
// Get display's graphics mode control and draw scales
GraphicsModeControl dispGMC = (GraphicsModeControl)
display.getGraphicsModeControl();
dispGMC.setScaleEnable(true);
// Add maps to display
display.addMap( numLinksMap );
display.addMap( distanceToOutMap );
// Create a data reference and set the FlatField as our data
data_ref = new DataReferenceImpl("data_ref");
data_ref.setData( hist );
// Add reference to display
display.addReference( data_ref );
// Create application window, put display into it
JFrame jframe = new JFrame();
jframe.getContentPane().add(display.getComponent());
// Set window size and make it visible
jframe.setSize(300, 300);
jframe.setVisible(true);
}
public static void main(String[] args) throws VisADException,
RemoteException
{
new Histogram();
}
}