`
wutheringsea
  • 浏览: 265616 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

[转] JFreeChart两种图及中文乱码问题

阅读更多

柱状图:

 

import java.awt.Font;
import java.io.File;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
public class BarChartDemo {
public static void main(String[] args) throws IOException {
   CategoryDataset dataset = getDataset();
   JFreeChart chart = ChartFactory.createBarChart3D("圆柱",//标题
     "应报与实报对照", //x轴显示
     "人数", //y轴显示
     dataset, //数据源
     PlotOrientation.VERTICAL,//图表方向:水平、垂直 
     true, // 是否显示图例(对于简单的柱状图必须是false) 
     false, // 是否生成工具 
     false);// 是否生成URL链接 
   CategoryPlot plot = chart.getCategoryPlot();
   CategoryAxis axis = plot.getDomainAxis();//获取x轴
   ValueAxis numberAxis = plot.getRangeAxis();//获取y轴
   axis.setLowerMargin(0.1);//设置距离图片左端距离此时为10%
   axis.setUpperMargin(0.1);//设置距离图片右端距离此时为百分之10 
   axis.setCategoryLabelPositionOffset(10);//图表横轴与标签的距离(10像素)
   axis.setCategoryMargin(0.2);//横轴标签之间的距离20% 
   chart.getLegend().setItemFont(new Font("黑体",Font.BOLD,12));//设置底部中文乱码
   axis.setTickLabelFont(new Font("黑体",Font.BOLD,12));//设置X轴坐标上的文字
   axis.setLabelFont(new Font("黑体",Font.BOLD,12));//设置X轴的标题文字
   numberAxis.setTickLabelFont(new Font("黑体",Font.BOLD,12));//设置X轴坐标上的文字
   numberAxis.setLabelFont(new Font("黑体",Font.BOLD,12));//设置X轴的标题文字
   chart.getTitle().setFont(new Font("黑体",Font.BOLD,18));//设置标题文字
   File file = new File("d:/BarChartDemo.png");
   ChartUtilities.saveChartAsPNG(file, chart, 400, 300);
}

public static CategoryDataset getDataset(){
   DefaultCategoryDataset dataset = new DefaultCategoryDataset();
   dataset.addValue(100, "计划", "清华大学");
   dataset.addValue(150, "实报", "清华大学");
   dataset.addValue(200, "计划", "天津大学");
   dataset.addValue(300, "实报", "天津大学");
   dataset.addValue(130, "计划", "郑州大学");
   dataset.addValue(180, "实报", "郑州大学");
   return dataset;
}
}

 



饼状图:

二、饼状图
import java.awt.Font;
import java.io.File;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
public class PieChartDemo {
public static void main(String[] args) throws IOException {
   DefaultPieDataset dataset = getdDataset();
   JFreeChart chart = ChartFactory.createPieChart3D("饼状图", 
     dataset, 
     true, 
     false, 
     false);
   chart.getTitle().setFont(new Font("黑体",Font.BOLD,20));//设置标题字体
   PiePlot piePlot= (PiePlot) chart.getPlot();//获取图表区域对象
     piePlot.setLabelFont(new Font("黑体",Font.BOLD,12));//饼图旁边的中文
     chart.getLegend().setItemFont(new Font("黑体",Font.BOLD,12));//底部中文
   File file = new File("d:/PieChartDemo.png");
   ChartUtilities.saveChartAsPNG(file, chart, 400, 300);
}

public static DefaultPieDataset getdDataset(){
   DefaultPieDataset dataset = new DefaultPieDataset();
   dataset.setValue("JAVA开放工程师", 500);
   dataset.setValue(".NET开放工程师", 300);
   dataset.setValue("PHP开放工程师", 100);
   dataset.setValue("PB开放工程师", 50);
   dataset.setValue("C开放工程师", 250);
   dataset.setValue("C++开放工程师", 400);
   return dataset;
}
}


 

分享到:
评论

相关推荐

    JFreeChart中文乱码解决方案.doc

    本文将介绍两种常见的解决方案,帮助开发者解决JFreeChart中文乱码的问题。 ### 方法一:设置主题样式 **步骤一:创建主题样式** 在绘制图表之前,首先需要创建一个自定义的主题样式,并指定该样式下的字体。这...

    jfreeChart 例子,并设置语言,防止乱码

    在本文中,我们将深入探讨如何使用JFreeChart来创建饼状图,并重点讲解如何设置语言以及解决可能出现的乱码问题。 首先,JFreeChart依赖于JCommon库,这是一个提供基础图形和数据处理功能的库。在我们的示例中,...

    jfreechart总结文档

    JFreeChart 提供了两种解决方案: 1. **Applet 方案**:使用 Java Applet 在浏览器中直接绘制图表。然而,由于现代浏览器逐渐弃用对 Java Applet 的支持,这种方式在互联网环境中已经不推荐。 2. **服务器端生成...

    JFC/JFreechart

    JFreeChart 是一个开源的 Java 图形库,用于创建各种类型的图表,如饼图、柱状图、曲线图、散列图、时序图、区域图、差异图、步骤图、混合图、甘特图以及复合图等。其最新稳定版本为 1.0.0。JFreeChart 的设计使得...

    ireport入门指南+饼状图+柱状图.pdf

    JasperReport以及JFreeChart提供了生成饼状图和柱状图的能力,这两种图表常用于数据分析中展示各类数据的比例和分布情况。 3. JasperReport:JasperReport是一款开源的报表生成工具,支持将数据以报表的形式展现。...

Global site tag (gtag.js) - Google Analytics