package neuralnetworks; /** * Title: <p> * Description: <p> * Copyright: Copyright (c) <p> * Company: <p> * @author * @version 1.0 */ import javax.swing.*; import java.awt.*; public class GraphPanel extends java.awt.Canvas { // JPanel { public GraphPanel(float[] data1, float[] data2) { super(); this.data1 = data1; this.data2 = data2; } Color black = new Color(0, 0, 0); float[] data1; float[] data2; public void paint(Graphics g) { if (data1 == null || data2 == null) return; int width = this.getWidth(); int height = this.getHeight(); System.out.println("height=" + height); float min = 99999999.9f; float max = -min; int maxindex = 0; float maxval = 0.0f; for (int i = 0; i < data1.length; i++) { // assume length of data1 and data2 are the same if (min > data1[i]) min = data1[i]; if (max < data1[i]) max = data1[i]; if (min > data2[i]) min = data2[i]; if (max < data2[i]) max = data2[i]; } System.out.println("min=" + min + ", max=" + max); g.setColor(Color.red); for (int i = 0; i < data1.length - 1; i++) { float y1 = height - 5 - 0.95f * height * ((data1[i] - min) / (max - min)); float y2 = height - 5 - 0.95f * height * ((data1[i + 1] - min) / (max - min)); //System.out.println("data["+i+"]="+data[i]+", y1="+y1+", y2="+y2); g.drawLine(i + 20, (int) y1, i + 21, (int) y2); y1 = height - 5 - 0.95f * height * ((data2[i] - min) / (max - min)); y2 = height - 5 - 0.95f * height * ((data2[i + 1] - min) / (max - min)); //System.out.println("data["+i+"]="+data[i]+", y1="+y1+", y2="+y2); g.drawLine(i + 20, (int) y1, i + 21, (int) y2); } float yzero = height - 5 - 0.95f * height * ((0.0f - min) / (max - min)); g.setColor(black); g.drawLine(20, (int) yzero, data2.length + 19, (int) yzero); g.drawLine(width / 2, height / 2 - 118, width / 2, height / 2 + 118); g.drawString("Sigmoid", width / 2 + 100, height / 4 - 10); g.drawString("SigmoidP", width / 2 +60, 3 * height / 4 + 10); g.drawString("-5", 4, (int) yzero); g.drawString("5", width - 19, (int) yzero); g.drawString("1.0", width / 2 - 7, 12); g.drawString("0.0", width / 2 - 9, height - 5); } }