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

📄 outputchart.java

📁 svg gwt 监控软件 大的 大 发了佛法ffffffffff发的司法
💻 JAVA
字号:
package com.mc.chart;

import java.awt.Color;
import java.awt.Image;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Date;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.DateTickUnit;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.time.Hour;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;

public class OutputChart {
	private TimeSeriesCollection dataset = new TimeSeriesCollection();

	private Date beginDate = null;

	private Date endDate = null;

	private JFreeChart chart = null;

	private int twoline = 0;
	
	public OutputChart(Date beginDate, Date endDate,int a) {
		this.beginDate = beginDate;

		this.endDate = new Date(beginDate.getTime() + 48 * 60 * 60 * 1000);
		twoline = a;
		// this.endDate = endDate;
	}

	public Image createChartIamge(int width, int height) {
		
		if(twoline == 1){
			chart = ChartFactory.createTimeSeriesChart("SO2排放量分析图", "时间(时)",
					"排放量", dataset, true, true, false);
		}
		
		if(twoline == 2){
			chart = ChartFactory.createTimeSeriesChart("脱硫效率分析图", "时间(时)",
					"脱硫效率(%)", dataset, true, true, false);
		}
		

		chart.setBackgroundPaint(Color.white);
		XYPlot xyplot = chart.getXYPlot();

		xyplot.getRenderer();

		DateAxis dateaxis = (DateAxis) xyplot.getDomainAxis(); // 对domain
		// 轴上日期显示格式定义
		dateaxis.setAutoRange(true);

		dateaxis.setRange(beginDate, endDate);
		dateaxis.setVerticalTickLabels(true);
		dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.HOUR, 1,
				new java.text.SimpleDateFormat("dd日HH时")));

		ValueAxis valueaxis = xyplot.getRangeAxis();// 设置坐标的宽度
		valueaxis.setRange(0.0D, 100);

		addData();

		return getImage(width, height);
	}

	public void addData() {
		if(twoline == 1){
			TimeSeries series = new TimeSeries("SO2",Hour.class);
			dataset.addSeries(series);
			for (int i = 0; i < 48; i++) {
				Date date = new Date(beginDate.getTime() + i * 60 * 60 * 1000);
				int a = (int) (Math.random() * 100);
				addTimeSeries(series, date, a);
			}
		}
		
		if(twoline == 2){
			TimeSeries series1 = new TimeSeries("标准脱硫效率",Hour.class);
			dataset.addSeries(series1);
			TimeSeries series = new TimeSeries("实际脱硫效率",Hour.class);
			dataset.addSeries(series);
			for (int i = 0; i < 48; i++) {
				Date date = new Date(beginDate.getTime() + i * 60 * 60 * 1000);
				int a = (int) (Math.random() * 100);
				addTimeSeries(series, date, a);
				addTimeSeries(series1, date, 95);
			}
		}
		
	}

	public void addTimeSeries(TimeSeries series, Date date, float value) {
		try {
			series.add(new Hour(date), value);
		} catch (Exception ex) {
			System.out.println(ex);
			series.update(new Hour(date), value);
		}

	}

	public Image getImage(int width, int height) {
		ByteArrayOutputStream os = new ByteArrayOutputStream();
		try {
			ChartUtilities.writeChartAsPNG(os, chart, width, height, null);
			Image image = ImageIO.read(new ByteArrayInputStream(os
					.toByteArray()));
			return image;
		} catch (IOException e) {
			throw new RuntimeException(e);
		}
	}
	
	public static void  main(String[] str){
		JFrame frame = new JFrame();
		
		OutputChart chart = new OutputChart(new Date(),new Date(),1);
		Image image = chart.createChartIamge(900,600);
		
		ImageIcon b = new ImageIcon(image);
		
		
		JLabel label = new JLabel(b);
		
		frame.add(label,"Center");
		
		frame.setSize(900,600);
		frame.setDefaultCloseOperation(3);
		frame.pack();
		frame.setVisible(true);
	}
	

}

⌨️ 快捷键说明

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