⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chartdrawer.java

📁 RBFN for nuro analysis
💻 JAVA
字号:
import java.awt.Container;
import javax.swing.*;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

/**
 * A simple demonstration of the {@link XYLineAndShapeRenderer} class.
 */
public class ChartDrawer  extends ApplicationFrame{
	private String type;
    /**
     * Constructs the demo application.
     *
     * @param title  the frame title.
     */
    public ChartDrawer(final String title,JPanel c,DataPoints data) {

        super(title);
        type=title;
        XYDataset dataset;
        try{
        if(type=="Training Set") {
        dataset = createSampleDataset2(data);
        }
        else {
        	dataset = createSampleDataset3(data);
        }
        JFreeChart chart = ChartFactory.createXYLineChart(
            title,
            "X",
            "Y",
            dataset,
            PlotOrientation.VERTICAL,
            true,
            false,
            false
        );
        
        XYPlot plot = (XYPlot) chart.getPlot();
        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        renderer.setSeriesLinesVisible(0, false);
        renderer.setSeriesShapesVisible(0, true);
        renderer.setSeriesLinesVisible(1, false);
        renderer.setSeriesShapesVisible(1, true);  
        renderer.setSeriesLinesVisible(2, false);
        renderer.setSeriesShapesVisible(2, true);
        renderer.setSeriesLinesVisible(3, false);
        renderer.setSeriesShapesVisible(3, true); 
        plot.setRenderer(renderer);
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 300));
        setContentPane(chartPanel);
        
        c.add(chartPanel);
        }catch (Exception e){
            System.out.println("exception");
        }
    }
   
    private XYDataset createSampleDataset2(DataPoints data) throws Exception {
    	
		
		XYSeries series[]=new XYSeries[data.getMaxClusterNum()];
		System.out.println("MaxClusterNum"+data.getMaxClusterNum());
		System.out.println("ResultLength"+data.getLcount());
		for(int j=0;j<data.getMaxClusterNum();j++){
			series[j]=new XYSeries("Series"+j);
			
		}
		for(int s=0;s</*data.getTestingCount()*/data.getTrainingCount();s++){
			series[(int)(data.getPoint()[s].DefaultClassify)-1].add(data.getPoint()[s].position[0],data.getPoint()[s].position[1]);
			//series[(int)(data.getTestPoint()[s].DefaultClassify)-1].add(data.getTestPoint()[s].position[0],data.getTestPoint()[s].position[1]);

			//now 800.txt can use (int)data.getResult()[s]-1 getting data;it should use
			//(int)data.getResult()[s]
			//series[(int)data.getResult()[s]-1].add(data.getX()[0][s],data.getX()[1][s]);
		}
	//	series[0]=new XYSeries("Series"+0);
	//	series[(int)data.getResult()[0]].add(data.getX()[0][0],data.getX()[1][0]);
     /*   XYSeries series1 = new XYSeries("Series 1");
        series1.add(1.0, 3.3);
        series1.add(2.0, 4.4);
        series1.add(3.0, 1.7);
        
        XYSeries series2 = new XYSeries("Series 2");
        series2.add(1.0, 7.3);
        series2.add(2.0, 6.8);
        series2.add(3.0, 9.6);
        series2.add(4.0, 5.6);
       */ 
        XYSeriesCollection dataset = new XYSeriesCollection();
        
    	for(int j=0;j<data.getMaxClusterNum();j++){
    		dataset.addSeries(series[j]);			
		}
  //      dataset.addSeries(series[3]);
        return dataset;
    }
    
private XYDataset createSampleDataset3(DataPoints data) throws Exception {
    	
		
		XYSeries series[]=new XYSeries[data.getMaxClusterNum()];
		System.out.println("MaxClusterNum"+data.getMaxClusterNum());
		System.out.println("ResultLength"+data.getLcount());
		for(int j=0;j<data.getMaxClusterNum();j++){
			series[j]=new XYSeries("Series"+j);
			
		}
		for(int s=0;s<data.getTestingCount()/*data.getTrainingCount()*/;s++){
			series[(int)(data.getTestPoint()[s].DefaultClassify)-1].add(data.getTestPoint()[s].position[0],data.getTestPoint()[s].position[1]);
			//series[(int)(data.getTestPoint()[s].DefaultClassify)-1].add(data.getTestPoint()[s].position[0],data.getTestPoint()[s].position[1]);

			//now 800.txt can use (int)data.getResult()[s]-1 getting data;it should use
			//(int)data.getResult()[s]
			//series[(int)data.getResult()[s]-1].add(data.getX()[0][s],data.getX()[1][s]);
		}
	//	series[0]=new XYSeries("Series"+0);
	//	series[(int)data.getResult()[0]].add(data.getX()[0][0],data.getX()[1][0]);
     /*   XYSeries series1 = new XYSeries("Series 1");
        series1.add(1.0, 3.3);
        series1.add(2.0, 4.4);
        series1.add(3.0, 1.7);
        
        XYSeries series2 = new XYSeries("Series 2");
        series2.add(1.0, 7.3);
        series2.add(2.0, 6.8);
        series2.add(3.0, 9.6);
        series2.add(4.0, 5.6);
       */ 
        XYSeriesCollection dataset = new XYSeriesCollection();
        
    	for(int j=0;j<data.getMaxClusterNum();j++){
    		dataset.addSeries(series[j]);			
		}
  //      dataset.addSeries(series[3]);
        return dataset;
    }
    
    /**
     * Creates a sample dataset.
     * 
     * @return A dataset.
     */
    //800 need another process because cluster "0"
    private XYDataset createSampleDataset() throws Exception {
    	DataPoints data=new DataPoints("");
		data.parse();
		XYSeries series[]=new XYSeries[data.getMaxClusterNum()];
		System.out.println("MaxClusterNum"+data.getMaxClusterNum());
		System.out.println("ResultLength"+data.getLcount());
		for(int j=0;j<data.getMaxClusterNum();j++){
			series[j]=new XYSeries("Series"+j);
			
		}
		for(int s=0;s<data.getLcount();s++){
			//now 800.txt can use (int)data.getResult()[s]-1 getting data;it should use
			//(int)data.getResult()[s]
			series[(int)data.getResult()[s]-1].add(data.getX()[0][s],data.getX()[1][s]);
		}
	//	series[0]=new XYSeries("Series"+0);
	//	series[(int)data.getResult()[0]].add(data.getX()[0][0],data.getX()[1][0]);
     /*   XYSeries series1 = new XYSeries("Series 1");
        series1.add(1.0, 3.3);
        series1.add(2.0, 4.4);
        series1.add(3.0, 1.7);
        
        XYSeries series2 = new XYSeries("Series 2");
        series2.add(1.0, 7.3);
        series2.add(2.0, 6.8);
        series2.add(3.0, 9.6);
        series2.add(4.0, 5.6);
       */ 
        XYSeriesCollection dataset = new XYSeriesCollection();
        
    	for(int j=0;j<data.getMaxClusterNum();j++){
    		dataset.addSeries(series[j]);			
		}
  //      dataset.addSeries(series[3]);
        return dataset;
    }

   
    /**
     * Starting point for the demonstration application.
     *
     * @param args  ignored.
     */
  /*  public static void main(final String[] args) {

        final ChartDrawer demo = new ChartDrawer(
            "XYLineAndShapeRenderer Demo"
        );
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);

    }
*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -