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

📄 multiplechart.java

📁 Mapxtreme for java,相信搞GIS的朋友一定很迫切需要
💻 JAVA
字号:
package demo.chart;

import java.awt.Color;
import java.awt.Font;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;

import javax.servlet.http.HttpSession;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.StandardXYToolTipGenerator;
import org.jfree.chart.plot.DatasetRenderingOrder;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.chart.renderer.xy.XYStepAreaRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.xy.XYDataset;
import org.jfree.ui.RectangleInsets;

public class MultipleChart {
	
	private Font titleFont = new Font("黑体",Font.CENTER_BASELINE,18);
	private XYDataset stepDataset;
	private XYDataset lineDataset;
	
	public MultipleChart() {
		super();
	}
	
	public void setStepValue(XYDataset stepDataset) {
		this.stepDataset = stepDataset;
	}
	
    public void setLineDataset(XYDataset lineDataset) {
		this.lineDataset = lineDataset;
	}

	private JFreeChart createChart(XYDataset xydataset)
    {
        JFreeChart jfreechart = ChartFactory.createXYStepAreaChart("监控设置", 
        		"时刻", 
        		"流量", 
        		xydataset, 
        		PlotOrientation.VERTICAL, 
        		true, 
        		true, 
        		false);
        
        XYPlot xyplot = jfreechart.getXYPlot();
        DateAxis dateaxis = new DateAxis("时刻");
        
        //设置图两边空白尺寸
        dateaxis.setLowerMargin(0.0D);
        dateaxis.setUpperMargin(0.0D);
        
        //X轴日期\时间格式
        dateaxis.setDateFormatOverride(new SimpleDateFormat("HH"));
        
        xyplot.setDomainAxis(dateaxis);
        
        //设置轴线偏移
        xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));
        
        //设置顺序
        xyplot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
        
        //区域上不标注点
        XYStepAreaRenderer xyarearenderer = (XYStepAreaRenderer)xyplot.getRenderer();
        xyarearenderer.setPlotShapes(false);
        
        //设置区域颜色、透明度
        xyarearenderer.setSeriesPaint(0, new Color(0, 0, 255, 64));
        
        xyarearenderer.setToolTipGenerator(new StandardXYToolTipGenerator("{0}({1}) = {2}", 
        		new SimpleDateFormat("HH:mm"), 
        		new DecimalFormat("#,##0")));
        
        //设置第二曲线
        StandardXYItemRenderer standardxyitemrenderer = new StandardXYItemRenderer();
        standardxyitemrenderer.setToolTipGenerator(new StandardXYToolTipGenerator("{0}({1}) = {2}", 
        		new SimpleDateFormat("HH:mm"), 
        		new DecimalFormat("#,##0")));        
        
        xyplot.setDataset(1, lineDataset);
        xyplot.setRenderer(1,standardxyitemrenderer);        
        
        return jfreechart;
        
    }
    
    public String generateStepRendererChart(
			String title, 
			HttpSession session, 
			PrintWriter pw) {
		
		String filename = null;
		
		try {
			JFreeChart chart = createChart(stepDataset);
			
			//设置图片的背景色
			chart.setBackgroundPaint(new Color(215,215,215));
			
			//设置图片标题的字体和大小
			TextTitle _title = new TextTitle(title);
			_title.setFont(titleFont);
			chart.setTitle(_title);			
			
	        //把生成的图片放到临时目录
			ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
			
			//设置图片名称前缀
			ServletUtilities.setTempFilePrefix("chart-");
			
			//500是图片长度,300是图片高度
			filename = ServletUtilities.saveChartAsPNG(chart, 600, 350, info, session);

			ChartUtilities.writeImageMap(pw, filename, info, false);
			pw.flush();	
			
			System.out.println(System.getProperty("java.io.tmpdir") + filename);
			
		} catch (Exception e) {
			System.out.println("Exception - " + e.toString());
			e.printStackTrace(System.out);
			filename = "public_error_600x350.png";
		}		
		return filename;		
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}



}

⌨️ 快捷键说明

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