📄 createline3dmodel.java
字号:
package com.kai.jfc;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import javax.servlet.http.HttpSession;
import javax.swing.ImageIcon;
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.CategoryAxis3D;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.StandardXYToolTipGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.time.Day;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
import org.jfree.ui.HorizontalAlignment;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RectangleInsets;
/**
* 类文件:CreateLine3DModel.java
* @author 作者: 王凯 E-mail: wk1025@126.com
* @version 创建时间:Sep 9, 2008 2:21:34 PM
* 类 CreateLine3DModel 的作用:
*/
public class CreateLine3DModel
{
public String getLineXYChart(HttpSession session, PrintWriter pw)
{
String fileName = null;
CategoryDataset dataset = createDataset();
/*
3D图
*/
JFreeChart chart = ChartFactory.createLineChart3D("Java Standard Class Library", null, "Class Count", dataset, PlotOrientation.VERTICAL, false, true, false);
chart.addSubtitle(new TextTitle("Number of Classes By Release"));
TextTitle texttitle = new TextTitle("200?年?月---200?年?月的对比折线3D图");
texttitle.setFont(new Font("SansSerif", 0, 10));
texttitle.setPosition(RectangleEdge.BOTTOM);
// texttitle.setHorizontalAlignment(HorizontalAlignment.RIGHT);
chart.addSubtitle(texttitle);
chart.setBackgroundPaint(Color.white);
CategoryPlot categoryplot = (CategoryPlot)chart.getPlot();
CategoryAxis3D a = (CategoryAxis3D) categoryplot.getDomainAxis();
a.setTickLabelsVisible(false);
categoryplot.setBackgroundPaint(Color.lightGray);
categoryplot.setRangeGridlinePaint(Color.gray);
categoryplot.setDomainGridlinePaint(Color.lightGray);
categoryplot.setRangeGridlinesVisible(true);
categoryplot.setDomainGridlinesVisible(true);
categoryplot.setBackgroundImageAlpha(1.0F);
NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer)categoryplot.getRenderer();
lineandshaperenderer.setShapesVisible(true);
lineandshaperenderer.setDrawOutlines(true);
lineandshaperenderer.setUseFillPaint(true);
lineandshaperenderer.setFillPaint(Color.white);
lineandshaperenderer.setSeriesStroke(0, new BasicStroke(3F));
lineandshaperenderer.setSeriesOutlineStroke(0, new BasicStroke(2.0F));
lineandshaperenderer.setSeriesShape(0, new java.awt.geom.Ellipse2D.Double(-5D, -5D, 10D, 10D));
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
try
{
fileName = ServletUtilities.saveChartAsPNG(chart, 500, 300, info,session);// 生成图片
ChartUtilities.writeImageMap(pw, fileName, info, false);
} catch (IOException e) {
e.printStackTrace();
}
pw.flush();
return fileName;// 返回生成图片的文件名
}
/**
* 建立生成图形所需的数据集
* @return 返回数据集
*/
private static CategoryDataset createDataset()
{
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
/*
* 里面插入的是数据,在实际应用中可以将其替换成你所需要的数据
*/
defaultcategorydataset.addValue(10D, "北京", "Category 1");
defaultcategorydataset.addValue(4D, "北京", "Category 2");
defaultcategorydataset.addValue(15D, "北京", "Category 3");
defaultcategorydataset.addValue(14D, "北京", "Category 4");
defaultcategorydataset.addValue( -5D, "北京", "Category 1");
defaultcategorydataset.addValue( -7D, "北京", "Category 2");
defaultcategorydataset.addValue(14D, "北京", "Category 3");
defaultcategorydataset.addValue( -3D, "北京", "Category 4");
defaultcategorydataset.addValue(6D, "北京", "Category 1");
defaultcategorydataset.addValue(17D, "北京", "Category 2");
defaultcategorydataset.addValue( -12D, "北京", "Category 3");
defaultcategorydataset.addValue(7D, "北京", "Category 4");
defaultcategorydataset.addValue(7D, "北京", "Category 1");
defaultcategorydataset.addValue(15D, "北京", "Category 2");
defaultcategorydataset.addValue(11D, "上海", "Category 3");
defaultcategorydataset.addValue(0.0D, "上海", "Category 4");
defaultcategorydataset.addValue( -8D, "上海", "Category 1");
defaultcategorydataset.addValue( -6D, "上海", "Category 2");
defaultcategorydataset.addValue(10D, "上海", "Category 3");
defaultcategorydataset.addValue( -9D, "上海", "Category 4");
defaultcategorydataset.addValue(9D, "上海", "Category 1");
defaultcategorydataset.addValue(8D, "上海", "Category 2");
defaultcategorydataset.addValue(0.0D, "上海", "Category 3");
defaultcategorydataset.addValue(6D, "上海", "Category 4");
defaultcategorydataset.addValue( -10D, "上海", "Category 1");
defaultcategorydataset.addValue(9D, "上海", "Category 2");
defaultcategorydataset.addValue(7D, "上海", "Category 3");
defaultcategorydataset.addValue(7D, "上海", "Category 4");
defaultcategorydataset.addValue(11D, "上海", "Category 1");
defaultcategorydataset.addValue(13D, "上海", "Category 2");
defaultcategorydataset.addValue(9D, "上海", "Category 3");
defaultcategorydataset.addValue(9D, "上海", "Category 4");
defaultcategorydataset.addValue( -3D, "上海", "Category 1");
defaultcategorydataset.addValue(7D, "上海", "Category 2");
defaultcategorydataset.addValue(11D, "上海", "Category 3");
defaultcategorydataset.addValue( -10D, "上海", "Category 4");
return defaultcategorydataset;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -