首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-12-20 
[转] JFreeChart两种图及中文乱码问题柱状图:?import java.awt.Fontimport java.io.Fileimport java.io.

[转] 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;
}
}


来源:http://hi.baidu.com/toto902/blog/item/55f4e51f6057acfc1bd576e9.html

?

热点排行