JFreeChart简单例子加乱码解决(部分)
首先需要导入两个包:
jcommon-1.0.17.jar
jfreechart-1.0.14.jar
如果你手头没有需要到JFreeChart的网站上去下载地址如下:http://sourceforge.net/projects/jfreechart/files/
下载后可以找到以上两个包,有个包gnujaxp.jar加入后启动tomcat会报错,不知何解,下面是代码:
?
import java.awt.Color;import java.awt.Font;import java.io.FileOutputStream;import java.io.IOException;import java.util.Date;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.CategoryLabelPositions;import org.jfree.chart.axis.ValueAxis;import org.jfree.chart.plot.CategoryPlot;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;public class Test {public static void main(String[] args) {CategoryDataset dataset = getDataSet2();DefaultPieDataset data = getDataSet();JFreeChartchart1 = ChartFactory.createBarChart3D("城市水果产量图", //图表标题 "水果", //目录轴的显示标签 "产量", //数值周的显示标签 dataset, PlotOrientation.VERTICAL,//图标方向:水平、垂直 true,//是否显示图例(对于简单的柱状图必须是false) false,//是否生成工具 false);//是否生成URLJFreeChart chart2 = ChartFactory.createPieChart3D("水果产量", data, true, false, false);configFont(chart1);FileOutputStream fos_jpg = null;try {fos_jpg = new FileOutputStream("D:\\fruit.jpg");//生成的路径,请在这里查看图片ChartUtilities.writeChartAsPNG(fos_jpg, chart1, 400, 300, null);//chart1,chart2} catch (IOException e) {e.printStackTrace();}finally{try {fos_jpg.close();} catch (IOException e2) {e2.printStackTrace();}}} private static void configFont(JFreeChart chart) { // 配置字 Font xfont = new Font("宋体", Font.PLAIN, 12);// X轴 Font yfont = new Font("宋体", Font.PLAIN, 12);// Y轴 Font kfont = new Font("宋体", Font.PLAIN, 12);// 底部 Font titleFont = new Font("隶书", Font.BOLD, 25); // 图片标题 CategoryPlot plot = chart.getCategoryPlot();// 图形的绘制结构对象 // 图片标题 chart.setTitle(new TextTitle(chart.getTitle().getText(), titleFont)); // 底部 chart.getLegend().setItemFont(kfont); // X 轴 CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setLabelFont(xfont);// 轴标题 domainAxis.setTickLabelFont(xfont);// 轴数值 domainAxis.setTickLabelPaint(Color.BLUE); // 字体颜色 domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 横轴上的label斜显示 // Y 轴 ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setLabelFont(yfont); rangeAxis.setLabelPaint(Color.BLUE); // 字体颜色 rangeAxis.setTickLabelFont(yfont); }private static DefaultPieDataset getDataSet(){DefaultPieDataset dataset = new DefaultPieDataset();dataset.setValue("苹果",100);dataset.setValue("梨子",200);dataset.setValue("香蕉",300);dataset.setValue("荔枝",400);dataset.setValue("葡萄",500);return dataset;}private static CategoryDataset getDataSet2(){DefaultCategoryDataset dataset = new DefaultCategoryDataset();dataset.addValue(100, "北京", "苹果");dataset.addValue(100, "上海", "苹果");dataset.addValue(100, "广州", "苹果");dataset.addValue(200, "北京", "梨子");dataset.addValue(200, "上海", "梨子");dataset.addValue(200, "广州", "梨子");dataset.addValue(300, "北京", "葡萄");dataset.addValue(300, "上海", "葡萄");dataset.addValue(300, "广州", "葡萄");dataset.addValue(400, "北京", "香蕉");dataset.addValue(400, "上海", "香蕉");dataset.addValue(400, "广州", "香蕉");dataset.addValue(500, "北京", "荔枝");dataset.addValue(500, "上海", "荔枝");dataset.addValue(500, "广州", "荔枝");return dataset;}}?