JFreeChart使用示例(入门级)
来源:互联网 发布:阿里云选择镜像 编辑:程序博客网 时间:2024/06/04 18:11
最近有个作业要用到JFreeChart,可是上网查了查却发现这方面的资料很少,而且几乎都是雷同的,不适合初学者学习。
JFreeChart功能特别强大,我仅仅也是刚刚掌握了点皮毛。
下面我把我的代码贴上来,作为一个入门级的示例,希望能给初学者一点小小的帮助。。。
import java.awt.Color;import java.awt.Font;import java.io.File;import java.io.FileOutputStream;import java.text.DecimalFormat;import java.text.NumberFormat;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.CategoryAnchor;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.axis.CategoryAxis;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.labels.StandardPieSectionLabelGenerator;import org.jfree.chart.plot.PiePlot3D;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.title.TextTitle;import org.jfree.data.category.CategoryDataset;import org.jfree.data.category.DefaultCategoryDataset;import org.jfree.data.general.DefaultPieDataset;import org.jfree.data.general.PieDataset;public class drawpie {public static void drawit(int[] a, String t) {PieDataset dataset = getDataSet(a);JFreeChart chart = ChartFactory.createPieChart3D("成绩统计图", dataset,true, true, false);PiePlot3D plot = (PiePlot3D) chart.getPlot();// 图片中显示百分比:自定义方式,{0} 表示选项, {1} 表示数值, {2} 表示所占比例 ,小数点后两位plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(),new DecimalFormat("0.00%")));// 图例显示百分比:自定义方式, {0} 表示选项, {1} 表示数值, {2} 表示所占比例plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})"));// 设置背景色为白色chart.setBackgroundPaint(Color.white);// 指定图片的透明度(0.0-1.0)plot.setForegroundAlpha(1.0f);// 指定显示的饼图上圆形(false)还椭圆形(true)plot.setCircular(true);// 设置图标题的字体Font font = new Font("幼圆", Font.CENTER_BASELINE, 10);TextTitle title = new TextTitle(t);title.setFont(font);// 设置字体,非常关键不然会出现乱码的,下方的字体chart.getLegend().setItemFont(font);// 设置图片的地址Pie图的字体plot.setLabelFont(font);chart.setTitle(title);FileOutputStream fos_jpg = null;try { File file=new File("img"); if(!file.exists()) { file.mkdir(); }fos_jpg = new FileOutputStream("img\\"+t+".jpg");ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 296, 221, null);fos_jpg.close();} catch (Exception e) {}}private static PieDataset getDataSet(int[] a) {DefaultPieDataset dataset = new DefaultPieDataset();dataset.setValue("优秀",a[0]);dataset.setValue("良好",a[1]);dataset.setValue("中等",a[2]);dataset.setValue("及格",a[3]);dataset.setValue("不及格",a[4]);return dataset;} public static void drawchart(int[][] b,String name) { CategoryDataset ds =getchartDataSet(b); JFreeChart chart = ChartFactory.createBarChart3D( "学生成绩统计图", //图表标题 "分类", //目录轴的显示标签 "人数", //数值轴的显示标签 ds, //数据集 PlotOrientation.VERTICAL, //图表方向 true, //是否显示图例,对于简单的柱状图必须为false false, //是否生成提示工具 false); //是否生成url链接 CategoryPlot categoryplot = (CategoryPlot) chart.getPlot(); NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis(); CategoryAxis domainAxis = categoryplot.getDomainAxis(); /*------设置X轴坐标上的文字-----------*/ domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11)); /*------设置X轴的标题文字------------*/ domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); /*------设置Y轴坐标上的文字-----------*/ numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12)); /*------设置Y轴的标题文字------------*/ numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12)); /*------这句代码解决了底部汉字乱码的问题-----------*/ chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12)); FileOutputStream fos_jpg = null;try { File file=new File("img"); if(!file.exists()) { file.mkdir(); }fos_jpg = new FileOutputStream("img\\"+name+".jpg");ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 392, 221, null);fos_jpg.close();} catch (Exception e) {} } private static CategoryDataset getchartDataSet(int[][] b) { DefaultCategoryDataset ds = new DefaultCategoryDataset(); ds.addValue(b[0][0], "优秀", "数学成绩"); ds.addValue(b[0][1], "良好", "数学成绩"); ds.addValue(b[0][2], "中等", "数学成绩"); ds.addValue(b[0][3], "及格", "数学成绩"); ds.addValue(b[0][4], "不及格", "数学成绩"); ds.addValue(b[1][0], "优秀", "英语成绩"); ds.addValue(b[1][1], "良好", "英语成绩"); ds.addValue(b[1][2], "中等", "英语成绩"); ds.addValue(b[1][3], "及格", "英语成绩"); ds.addValue(b[1][4], "不及格", "英语成绩"); ds.addValue(b[2][0], "优秀", "政治成绩"); ds.addValue(b[2][1], "良好", "政治成绩"); ds.addValue(b[2][2], "中等", "政治成绩"); ds.addValue(b[2][3], "及格", "政治成绩"); ds.addValue(b[2][4], "不及格", "政治成绩"); ds.addValue(b[3][0], "优秀", "专业课成绩"); ds.addValue(b[3][1], "良好", "专业课成绩"); ds.addValue(b[3][2], "中等", "专业课成绩"); ds.addValue(b[3][3], "及格", "专业课成绩"); ds.addValue(b[3][4], "不及格", "专业课成绩"); ds.addValue(b[4][0], "优秀", "平均成绩"); ds.addValue(b[4][1], "良好", "平均成绩"); ds.addValue(b[4][2], "中等", "平均成绩"); ds.addValue(b[4][3], "及格", "平均成绩"); ds.addValue(b[4][4], "不及格", "平均成绩"); return ds; }}
- JFreeChart使用示例(入门级)
- JFreeChart的入门使用
- Jfreechart入门使用
- JFreeChart学习(一)-JfreeChart中的timeSeries(时序图)使用示例
- JFreeChart 内置JDBC的使用示例
- JFreeChart示例
- JFreeChart示例
- JFreeChart图表示例(超全)
- JfreeChart 入门
- JFreeChart入门
- jfreechart入门
- JFreeChart入门
- JFreeChart入门
- Spring使用入门示例
- Spring使用入门示例
- thrift使用入门示例
- 模板使用入门示例
- JFreeChart简单介绍及用法(入门)
- Elf
- 第九周项目5——利息计算器
- CentOS 备忘
- Ubuntu搭建SVN服务器
- 索引概念及创建
- JFreeChart使用示例(入门级)
- 算法篇之快速排序
- vim显示行号、自动缩进的设置
- 分布式文件系统发展史
- 调用类的时候使用的类方法和SEL
- 自己设计的程序
- C++ vector容器类型
- 矩阵 快速幂
- Cocos2d-x 零散知识点辑录