public void plotTrainingSig(File trainFile)
	{
		theNet.clearTrainingData();
		loadTrainingData(trainFile);
		
		DisplayGraph[] dispGraph = new DisplayGraph[CypherType.size()];
		for (int i = 0; i< dispGraph.length; i++)
		{
			dispGraph[i] = new DisplayGraph(CypherType.fromIntToString(i) + " : Signiture Plot");
		}
		//For each training example add a new plot.
		

		//Loads the data from train file
		//Read the file
		BufferedReader br = null;
		String line;
		int index;
		String text;
		int type;
		int count;
		
		try 
		{
			br = new BufferedReader(new FileReader(trainFile));
		
			//First step to training. load the data.
			theNet.clearTrainingData();		//Clear the data first.
			count = 0;
			while ((line = br.readLine()) != null)
			{
				//Add the training example.
				//format is [English text]:[class]
				index = line.indexOf(":");
				if (index >=0 )
				{
					text = line.substring(0,index);
					text.replaceAll("[^A-Za-z]+", "");
					
					type = Integer.parseInt(line.substring(index+1,index+2));
					// Here we go.
					theNet.addTrainingExample(text, CypherType.fromInt(type));
					double [] tempArray = CryptoNet.getSigArray(text);
					
					dispGraph[type].addTrace("train" + count);
					for (int i = 0; i <tempArray.length;i++)
					{
						dispGraph[type].addPoint("train" + count, i, tempArray[i]);
					}
				}
				else
				{
					System.out.println("Bad Line ("+count+") in training data..");
				}
				count++;
			}
			br.close();
		} //end try
		catch (FileNotFoundException e) 
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		
	
		//Show the graphs.
		for (int i = 0; i < dispGraph.length; i++)
		{
			dispGraph[i].show();
		}
	}