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

📄 geneticalgorithmreportgenerator.java

📁 基于求函数f(x,y,z)=xyz*sin(xyz)最大值问题的演示程序 解压后在命令行输入:java -jar genetic_algorithm.jar
💻 JAVA
字号:
package edu.zsu.zouang.genetic.gui;

import java.awt.Color;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

import edu.zsu.zouang.genetic.GenerationDetail;

public class GeneticAlgorithmReportGenerator {

	private static Map<Integer, GenerationDetail> detailMap = new TreeMap<Integer, GenerationDetail>();

	private static CategoryDataset createGeneticReportDataSet() {
		String average = "平均适应值";
	    String maxfitness = "最大适应值";
	    String minfitness = "最小适应值";
	    DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
	    Iterator keyIterator = detailMap.keySet().iterator();
	    while(keyIterator.hasNext()){
	    	Integer generation = (Integer)keyIterator.next();
	    	GenerationDetail detail = detailMap.get(generation);
	    	String genStr = String.valueOf(generation);
	    	defaultcategorydataset.addValue(detail.getAverageFitness(),average ,genStr);
	    	defaultcategorydataset.addValue(detail.getMaxFitness(), maxfitness, genStr);
	    	defaultcategorydataset.addValue(detail.getMinFitness(), minfitness, genStr);
	    }
		return defaultcategorydataset;
	}

	private static JFreeChart createChart(CategoryDataset categorydataset) {
		JFreeChart jfreechart = ChartFactory.createLineChart("遗传算法报告", "遗传代数",
				"适应值", categorydataset, PlotOrientation.VERTICAL, true, true,
				false);
		jfreechart.setBackgroundPaint(Color.white);
		CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
		categoryplot.setBackgroundPaint(Color.lightGray);
		categoryplot.setRangeGridlinePaint(Color.white);
		NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();
		numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
		LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) categoryplot
				.getRenderer();
		lineandshaperenderer.setShapesVisible(true);
		return jfreechart;
	}

	public static JPanel createGeneticAlgorithmReportPanel() {
		JFreeChart jfreechart = createChart(createGeneticReportDataSet());
        return new ChartPanel(jfreechart);
	}

	public static void addDetail(int generation, GenerationDetail detail) {
		detailMap.put(generation, detail);
	}

	public static GenerationDetail getDetail(int generation) {
		return detailMap.get(generation);
	}
}

⌨️ 快捷键说明

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