读书人

JfreeChart制造柱状图

发布时间: 2012-06-27 14:20:09 作者: rapoo

JfreeChart制作柱状图

还是我一贯的风格,先贴代码:

这个是web项目,需要在web.xml文件中配置JfreeChart相关信息,并且把jar包导入到WEB-INFO下的lib文件夹中。其中web.xml文件的配置信息如下:

<servlet><servlet-name>DisplayChart</servlet-name><servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class></servlet><servlet-mapping><servlet-name>DisplayChart</servlet-name><url-pattern>/servlet/DisplayChart</url-pattern></servlet-mapping>
?

BarChart.java

package com.dsh.jfreechart;import java.awt.Font;import java.io.IOException;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartFrame;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.chart.title.LegendTitle;import org.jfree.chart.title.TextTitle;import org.jfree.data.category.CategoryDataset;import org.jfree.data.category.DefaultCategoryDataset;/** * 该类用于演示最简单的柱状图生成 *  * @author: DuanLang * @company:oddTech * @time:2011-12-7 下午02:04:06 */public class BarChart {public static void main(String[] args) throws IOException {CategoryDataset dataset = getDataSet2();JFreeChart chart = ChartFactory.createBarChart3D("水果产量图", // 图表标题"水果", // 目录轴的显示标签"产量", // 数值轴的显示标签dataset, // 数据集PlotOrientation.VERTICAL, // 图表方向:水平、垂直true, // 是否显示图例(对于简单的柱状图必须是false)false, // 是否生成工具false // 是否生成URL链接);// 设置图显示标题chart.setTitle(new TextTitle("水果产量图", new Font("黑体", Font.BOLD, 16)));// 取得统一表的第一个图列LegendTitle legend = chart.getLegend(0);// 修改图例字体legend.setItemFont(new Font("宋体", Font.BOLD, 14));// 取得状图plot对象CategoryPlot plot = (CategoryPlot) chart.getPlot();// 设置柱状图各部分标签字体CategoryAxis domainAxis = plot.getDomainAxis();domainAxis.setLabelFont(new Font("隶书", Font.BOLD, 20));// X轴的标题文字字体domainAxis.setTickLabelFont(new Font("隶书", Font.BOLD, 20));// X轴坐标上数值字体ValueAxis rangeAxis = plot.getRangeAxis();rangeAxis.setLabelFont(new Font("隶书", Font.BOLD, 20));// y轴的标题文字字体rangeAxis.setTickLabelFont(new Font("隶书", Font.BOLD, 20));// y轴坐标上数值字体//domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // X轴上的Lable让其45度倾斜// 设置距离图片左端距离domainAxis.setLowerMargin(0.0);// 设置距离图片右端距离domainAxis.setUpperMargin(0.0);// 以下是显示ChartFrame frame = new ChartFrame("公司水果产量图 ", chart, true);frame.pack();frame.setVisible(true);/* * FileOutputStream fos_jpg = null; try { fos_jpg = new * FileOutputStream("D:\\fruit.jpg"); ChartUtilities * .writeChartAsJPEG(fos_jpg, 100, chart, 400, 300, null); } finally { * try { fos_jpg.close(); } catch (Exception e) { } } */}/** * 获取一个演示用的简单数据集对象 *  * @return */private static CategoryDataset getDataSet() {DefaultCategoryDataset dataset = new DefaultCategoryDataset();dataset.addValue(100, null, "苹果");dataset.addValue(200, null, "梨子");dataset.addValue(300, null, "葡萄");dataset.addValue(400, null, "香蕉");dataset.addValue(500, null, "荔枝");return dataset;}/** * 获取一个演示用的组合数据集对象 *  * @return */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;}}
?

读书人网 >开源软件

热点推荐