这篇文章介绍了java类中使用Jfreechart的简单实例,有需要的朋友可以参考一下
package com.chart.test;
import java.awt.Basicstroke;
import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.http.HttpSession;
import oracle.jrockit.jfr.openmbean.JFRStatsType;
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.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.RectangleEdge;
public class ChartTest
{
public static void main(String[] args){
ChartTest test=new Charttest();
test.generateFile(test.getChart());
}
public JFreeChart getChart(){
String series1 ="First";
String series2 ="Second";
String type1 ="Type 1";
String type2 ="Type 2";
String type3 ="Type 3";
String type4 ="Type 4";
String type5 ="Type 5";
String type6 ="Type 6";
String type7 ="Type 7";
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(1.0D, series1, type1);
defaultcategorydataset.addValue(4D, series1, type2);
defaultcategorydataset.addValue(3D, series1, type3);
defaultcategorydataset.addValue(5D, series1, type4);
defaultcategorydataset.addValue(5D, series1, type5);
defaultcategorydataset.addValue(7D, series1, type6);
defaultcategorydataset.addValue(7D, series1, type7);
defaultcategorydataset.addValue(5D, series2, type1);
defaultcategorydataset.addValue(7D, series2, type2);
defaultcategorydataset.addValue(6D, series2, type3);
defaultcategorydataset.addValue(8D, series2, type4);
defaultcategorydataset.addValue(4D, series2, type5);
defaultcategorydataset.addValue(4D, series2, type6);
defaultcategorydataset.addValue(2D, series2, type7);
JFreeChart jfreechart = ChartFactory.createLineChart("Line Chart Demo 1","Type","Value",defaultcategorydataset,PlotOrientation.VERTICAL,true,true,false);
// ChartFactory.createLineChart(title, categoryAxisLabel, valueAxisLabel, dataset, orientation, legend, tooltips, urls)
// 上面语句legend设置为false时,表示新建的jfreechart无图例,为true时,自带图例,默认位置为底部。
jfreechart.getLegend().setPosition(RectangleEdge.RIGHT);//获取图例,设置位置
// LegendTitle legendTitle = new LegendTitle(jfreechart.getPlot());//创建图例,若有默认的,仍然创建,此时存在两个。
// legendTitle.setPosition(RectangleEdge.RIGHT);//设置图例的位置
// jfreechart.addLegend(legendTitle);//图表中添加图例
jfreechart.setBackgroundPaint(Color.white);//设置图例的背景色
CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
categoryplot.setBackgroundPaint(Color.lightGray);
categoryplot.setDomainGridlinesVisible(true);
categoryplot.setRangeGridlinesVisible(true);
categoryplot.setDomainGridlinePaint(Color.white);//设置横坐标网格线
categoryplot.setRangeGridlinePaint(Color.white);//设置纵坐标网格线
// 1、对标题
Font font1 = new Font("黑体",Font.BOLD, 14); // 设定字体、类型、字号
jfreechart.getTitle().setFont(font1); // 标题
// 3、下面的方块区域是 LegendTitle 对象
Font font3 = new Font("隶书",Font.BOLD, 12); // 设定字体、类型、字号
jfreechart.getLegend().setItemFont(font3);// 最下方
// 这是处理Plot里面的横轴,同理可以正理竖轴
CategoryAxis categoryaxis = categoryplot.getDomainAxis(); // 横轴上的
//纵坐标换行显示
// categoryaxis.setMaximumCategoryLabelLines(10);//行数,根据需要自己设
// categoryaxis.setMaximumCategoryLabelWidthRatio(0.5f);//每行宽度,这里设一个汉字宽
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);// 45度倾斜,可以改成其他,默认是水平
NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());// 数据轴的数据标签(可以只显示整数标签,需要将AutoTickUnitSelection设false)
numberaxis.setAutoRangeIncludesZero(true);//是否强制在自动选择的数据范围中包含0
categoryaxis.setTickLabelFont(new Font("SansSerif",Font.BOLD, 12));//坐标轴标尺值字体
numberaxis.setTickLabelFont(new Font("Simsun", Font.BOLD, 12));//
// 2、对图里面的汉字设定,也就是Plot的设定
Font font2 = new Font("Simsun", Font.BOLD, 16); // 设定字体、类型、字号
categoryaxis.setLabelFont(font2);//坐标轴标题字体
numberaxis.setLabelFont(font2);
LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer)categoryplot.getRenderer();
lineandshaperenderer.setShapesVisible(true); //series 点(即数据点)可见
lineandshaperenderer.setSeriesstroke(0, new Basicstroke(2.0F, 1, 1, 1.0F, new float[] {
10F, 6F
}, 0.0F)); //定义series为"First"的(即series1)点之间的连线 ,这里是虚线,默认是直线
lineandshaperenderer.setSeriesstroke(1, new Basicstroke(2.0F, 1, 1, 1.0F, new float[] {
6F, 6F
}, 0.0F)); //定义series为"Second"的(即series2)点之间的连线
return jfreechart;//返回Jfreechart
}
public void generateFile(JFreeChart chart){
String fileName = null;
try {
ChartUtilities.saveChartAsJPEG(new File("C:\PieChart.jpg"),chart,600,600); //生成图表文件到指定位置
} catch (IOException e)
{
e.printstacktrace();
}
}
public String getFileName(JFreeChart chart,HttpSession session,PrintWriter pw){
String fileName = null;
ChartRenderingInfo info=new ChartRenderingInfo(new StandardEntityCollection());
try {
fileName = ServletUtilities.saveChartAsPNG(chart, 700, 450, info, session); //生成临时文件
ChartUtilities.writeImageMap(pw, fileName, info, false);
pw.flush();
}
catch (IOException e)
{
e.printstacktrace();
}
// String graphURL = request.getcontextpath()+ "/servlet/displayChart?fileName=" + fileName;
// request.setAttribute("fileName",fileName);
// request.setAttribute("graphURL",graphURL);
return fileName;//返回生成图片的文件名 ,传入jsp
}
}
上一篇:Java网络编程UDP实现多线程在线聊天下一篇:Java动态代理分析及理解 热门搜索:
简单实例
java实例
使用实例
java中stack的使用
ubbcode简单实用
相关文章
java类中使用Jfreechart的简单实例
2021-09-18阅读(3226)评论(0)推荐()这篇文章介绍了java类中使用Jfreechart的简单实例,有需要的朋友可以参考一下
java 实例化类详解及简单实例
2021-11-08阅读(3780)评论(0)推荐()这篇文章主要介绍了java 实例化类详解及简单实例的相关资料,需要的朋友可以参考下
jsp JFreeChart使用心得与例子
2021-09-20阅读(7027)评论(0)推荐()一、JFreeChart的介绍与获取 JFreeChart开发包是一个开源的Java图形开发包,它从柱形图,饼形图,到雷达图,蜡烛图等等无所不包,可以在c/s,...
PHP中的traits简单使用实例
2021-11-05阅读(8368)评论(0)推荐()这篇文章主要介绍了PHP中的traits简单使用实例,本文着重讲解traits的语法、traits有什么作用、什么情况下使用traits,需要的朋友可以参考下
java类中生成jfreechart,返回图表的URL地址 代码分享
2021-11-05阅读(8720)评论(0)推荐()这篇文章介绍了java类中生成jfreechart,返回图表的URL地址的代码,有需要的朋友可以参考一下
简单了解JAVA中类、实例与Class对象
2021-11-05阅读(9898)评论(0)推荐()这篇文章主要介绍了简单了解JAVA中类、实例与Class对象,类是面向对象编程语言的一个重要概念,它是对一项事物的抽象概括,可以包含该事物的一些属性定义,以及操...
java生成饼图svg及JFreeChart生成svg图表
2021-11-12阅读(9176)评论(0)推荐()java生成饼图svg,代码实现感觉有点复杂,个人认为不如用JFreeChart,这篇文章主要介绍java生成饼图svg及JFreeChart生成svg图表,有...
取消
提交评论
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。