package graphs;
import odor.Odor;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import visualization.JNetwork;
public class XYInputsvOuputByThetaGraph extends graphs.XYInputsVOuputGraph
{
public XYInputsvOuputByThetaGraph(JNetwork network)
{
XYSeries data = new XYSeries(network.toString());
double[] inputs = network.getInput().getInputs();
double[] outputs = network.getOutput();
for (int x=0; x<outputs.length; x++)
{
//Input v.s Output, ordered by Theta
data.add(inputs[x], outputs[x]);
}
if (this.contains(network) == false)
{
this.dataSet.addSeries(data);
}
super.makeChart("Inputs v.s. Outputs by Network", "Input", "Output");
}
public XYInputsvOuputByThetaGraph(JNetwork network, Odor odorUsed)
{
XYSeries data = new XYSeries(network.toString());
double[] inputs = network.getInput().getInputs();
double[] outputs = network.getOutput();
for (int x=0; x<outputs.length; x++)
{
//Input v.s Output, ordered by Theta
data.add(inputs[x], outputs[x]);
}
if (this.contains(network) == false)
{
this.dataSet.addSeries(data);
}
super.makeChart("Inputs v.s. Outputs by Network", "Input", "Output");
super.chartFrame.setTitle(odorUsed.toString());
}
public void addXYSeries(JNetwork series)
{
XYSeries data = new XYSeries(series.toString());
double[] inputs = series.getInput().getInputs();
double[] outputs = series.getOutput();
for (int x=0; x<outputs.length; x++)
{
//Input v.s Input/Output, ordered by Theta
data.add(inputs[x], inputs[x]/outputs[x]);
}
if (this.contains(series) == false)
{
this.dataSet.addSeries(data);
}
}
public boolean contains(JNetwork input)
{
if (this.dataSet.getSeries() == null || input == null)
{
return false;
}
for(int x=0; x<this.dataSet.getSeriesCount(); x++)
{
XYSeries serie = this.dataSet.getSeries(x);
if (((String)serie.getKey()).compareTo(input.toString()) == 0)
{
return true;
}
}
return false;
}
}