`
niulanshan
  • 浏览: 564101 次
文章分类
社区版块
存档分类
最新评论

JFreeChart生成3D柱状图

 
阅读更多

1、源码如下:

/**
 * @Title:ColumnChart.java
 * @Package:com.you.jfreechart
 * @Description:柱形图
 * @author:Youhaidong(游海东)
 * @date:2013-7-23 下午10:50:00
 * @version V1.0
 */
package com.you.jfreechart;

import java.awt.Color;
import java.awt.Font;
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.CategoryLabelPositions;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.category.DefaultCategoryDataset;

/**
 * 类功能说明
 * 类修改者 修改日期
 * 修改说明
 * <p>Title:ColumnChart.java</p>
 * <p>Description:游海东个人开发</p>
 * <p>Copyright:Copyright(c)2013</p>
 * @author:游海东
 * @date:2013-7-23 下午10:50:00
 * @version V1.0
 */
public class ColumnChart {

	public ColumnChart(String string, JFreeChart chart) {
		
	}

	/**
	 * @Title:main
	 * @Description:柱形图
	 * @param:@param args
	 * @return: void
	 * @throws
	 */
	public static void main(String[] args) {
		
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(630, "湖北", "香蕉");
		dataset.addValue(520, "湖南", "苹果");
		dataset.addValue(320, "河北", "橘子");
		dataset.addValue(850, "河南", "梨子");
		dataset.addValue(240, "广东", "杏子");
		dataset.addValue(340, "广西", "葡萄");
		dataset.addValue(410, "浙江", "柠檬");
		dataset.addValue(600, "辽宁", "西瓜");
		dataset.addValue(780, "黑龙江", "荔枝");
		
		JFreeChart chart = ChartFactory.createBarChart3D("水果销售分布图","水果", "销量量", dataset, 
				           PlotOrientation.VERTICAL, true, true, false);
		chart.setBackgroundPaint(Color.yellow);
		CategoryPlot categoryPlot = chart.getCategoryPlot();
		categoryPlot.setBackgroundPaint(Color.LIGHT_GRAY);
		categoryPlot.setDomainGridlinePaint(Color.white);
		categoryPlot.setDomainGridlinesVisible(true);
		categoryPlot.setRangeGridlinePaint(Color.white);
		CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
		categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
		categoryPlot.getDomainAxis().setLabelFont(new Font("宋体",Font.BOLD,12));
		categoryPlot.getRangeAxis().setLabelFont(new Font("宋体",Font.BOLD,12));
		//解决标题乱码
		chart.getTitle().setFont(new Font("宋体",Font.BOLD,20));
		
		ChartFrame chartFrame = new ChartFrame("水果数量分布", chart);
		chartFrame.pack();
		chartFrame.setVisible(true);
		
		//解决Legend乱码问题
		LegendTitle legendTitle = chart.getLegend(0);
		legendTitle.setItemFont(new Font("宋体",Font.BOLD,12));
        
	}

}

2、生成结果如下,出现乱码:


3、解决中文乱码的源码

/**
 * @Title:ColumnChart.java
 * @Package:com.you.jfreechart
 * @Description:柱形图
 * @author:Youhaidong(游海东)
 * @date:2013-7-23 下午10:50:00
 * @version V1.0
 */
package com.you.jfreechart;

import java.awt.Color;
import java.awt.Font;
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.CategoryLabelPositions;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.category.DefaultCategoryDataset;

/**
 * 类功能说明
 * 类修改者 修改日期
 * 修改说明
 * <p>Title:ColumnChart.java</p>
 * <p>Description:游海东个人开发</p>
 * <p>Copyright:Copyright(c)2013</p>
 * @author:游海东
 * @date:2013-7-23 下午10:50:00
 * @version V1.0
 */
public class ColumnChart {

	public ColumnChart(String string, JFreeChart chart) {
		
	}

	/**
	 * @Title:main
	 * @Description:柱形图
	 * @param:@param args
	 * @return: void
	 * @throws
	 */
	public static void main(String[] args) {
		
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(630, "湖北", "香蕉");
		dataset.addValue(520, "湖南", "苹果");
		dataset.addValue(320, "河北", "橘子");
		dataset.addValue(850, "河南", "梨子");
		dataset.addValue(240, "广东", "杏子");
		dataset.addValue(340, "广西", "葡萄");
		dataset.addValue(410, "浙江", "柠檬");
		dataset.addValue(600, "辽宁", "西瓜");
		dataset.addValue(780, "黑龙江", "荔枝");
		
		JFreeChart chart = ChartFactory.createBarChart3D("水果销售分布图","水果", "销量量", dataset, 
				           PlotOrientation.VERTICAL, true, true, false);
		chart.setBackgroundPaint(Color.yellow);
		CategoryPlot categoryPlot = chart.getCategoryPlot();
		categoryPlot.setBackgroundPaint(Color.LIGHT_GRAY);
		categoryPlot.setDomainGridlinePaint(Color.white);
		categoryPlot.setDomainGridlinesVisible(true);
		categoryPlot.setRangeGridlinePaint(Color.white);
		CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
		categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
		categoryAxis.setLabelFont(new Font("宋体",Font.BOLD,12));
		categoryAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12));
		categoryPlot.getRangeAxis().setLabelFont(new Font("宋体",Font.BOLD,12));
		//解决标题乱码
		chart.getTitle().setFont(new Font("宋体",Font.BOLD,20));
		
		ChartFrame chartFrame = new ChartFrame("水果数量分布", chart);
		chartFrame.pack();
		chartFrame.setVisible(true);
		
		//解决Legend乱码问题
		LegendTitle legendTitle = chart.getLegend(0);
		legendTitle.setItemFont(new Font("宋体",Font.BOLD,12));
        
	}

}

4、显示结果如下图:


分享到:
评论

相关推荐

    JFreeChart生成3D饼状图及柱状图

    在这个特定的场景中,我们将关注如何使用JFreeChart生成3D饼状图和柱状图,并将这些图像保存到指定的文件目录下。 首先,我们需要了解JFreeChart的基本用法。JFreeChart的核心是`ChartFactory`类,它提供了静态方法...

    JFreeChart画图 饼状图 单组柱状图 多组柱状图 堆积柱状图 折线图

    JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...

    jfreechart_生成折线图,饼图,柱状图,堆栈柱状图

    jfreechart 生成折线图、饼图、柱状图、堆栈柱状图 jfreechart 是一个功能强大且流行的 Java 图表库,用于生成各种类型的图表,包括折线图、饼图、柱状图、堆栈柱状图等。在本文中,我们将使用 jfreechart 1.0.8a ...

    JFreeChart与Struts结合的例子生成多维3D柱状图

    JFreeChart与Struts结合生成多维3D柱状图的实例 report.jsp -- JSP文件 ReportAction.java -- Action类 JFreeChartUtils.java -- 工具类

    jfreechart生成单组3D变色柱状图

    使用`ChartFactory.createBarChart3D()`方法创建一个3D柱状图。此方法接受多个参数,包括图表标题、X轴标签、Y轴标签以及数据集等。 ```java JFreeChart chart = ChartFactory.createBarChart3D( "", // 图表标题 ...

    jfreechart 曲线图 3d饼图 3d柱状图

    **JFreeChart库详解:创建3D曲线图、3D饼图和3D柱状图** JFreeChart是一个强大的Java图形库,它提供了多种图表类型,包括曲线图、饼图和柱状图,且支持2D和3D效果。本篇文章将深入探讨如何使用JFreeChart来创建这些...

    JfreeChart柱状图饼图

    4. **渲染器**:`CategoryItemRenderer`负责绘制单个系列的数据,可以通过设置不同的渲染器实现不同效果,如3D柱状图、堆叠柱状图等。 ### 三、饼图的创建 1. **数据准备**:饼图的数据模型是`PieDataset`,同样...

    java使用JFreeChart制作柱形图

    使用 `JFreeChart` 的 `ChartFactory` 类,你可以通过调用 `createBarChart3D()` 方法来创建3D柱形图。这个方法需要四个参数:图表标题、X轴标签、Y轴标签以及之前创建的 `CategoryDataset`。 3. **定制图表**: ...

    JFreeChart饼图、柱状图等

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的高质量图表,如饼图、柱状图、线形图、散点图等。这个库在IT行业中被广泛应用于数据分析、报表生成以及各种可视化应用中。在给定的压缩包文件中,...

    jfreechart应用_经典例题_生成饼状图、生成单组柱状图、生成多组柱状图、生成堆积柱状图

    JFreeChart 是一个开源的 Java 图形库,用于生成高质量的二维图表,如饼状图、柱状图、线图等。它广泛应用于数据分析、报表和可视化应用中。本篇文章将详细讲解如何利用 JFreeChart 创建不同的图表类型,包括饼状图...

    Java Web应用开发 58 课堂案例-应用JFreeChart组件实现柱状图.docx

    在第21行到第28行,我们调用了`ChartFactory.createBarChart3D()`方法来生成一个3D效果的柱状图。这个方法需要四个参数:图表的标题,横轴标签,纵轴标签,以及数据集。这里我们传入了"产品销量柱状图"作为标题,...

    JAVA Web程序设计-3期(KC006) 13-3应用JFreeChart组件实现柱状图的操作步骤.doc

    在Java Web程序设计中,JFreeChart是一个强大的图表库,用于生成高质量的、可定制的图形,包括柱状图、饼图、线图等。在本教程中,我们将重点讨论如何利用JFreeChart组件实现柱状图的创建,具体操作步骤如下: 1. *...

    JFreeChart柱状图资料

    在JFreeChart中,你可以创建单列、多列、堆叠和百分比堆叠的柱状图,以及3D效果的柱状图。 3. **创建柱状图** 创建柱状图需要几个步骤:首先,你需要创建一个`CategoryDataset`对象,存储你要显示的数据;然后,用...

    利用jFreeChart做曲线图、饼状图、柱状图

    其中:createBarChart3D方法是ChartFactory工厂类里的一个方法,用于生成3D柱状图,该类继承自JFreeChart。 3. 设置图形显示的属性: a) ValueAxis类,设置柱到图上下边的距离。实现方法是:ValueAxis rangeAxis = ...

    java绘制图表(柱状图、饼图、折线图)包 jfreechart

    你可以创建一个`CategoryDataset`对象,将数据组织成类别和值,然后使用`JFreeChart`的`createBarChart()`方法来生成柱状图。 饼图是另一种常用的数据表示形式,适合显示各部分占整体的比例。JFreeChart允许你创建...

    jfreechart生成报表图片.zip

    这个“jfreechart生成报表图片.zip”压缩包包含了一组资源,可以帮助你快速创建各种类型的图表,如柱状图、饼图、折线图等,非常适合用于数据可视化。 1. **JFreeChart库介绍**: JFreeChart是开源的Java库,它...

    jfreechart实现3d饼状图

    JFreeChart是一个强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括柱状图、饼状图、线形图、散点图等。在这个特定的案例中,我们关注的是“3D饼状图”的实现,这是一种用以展示数据比例关系的可视化...

    java利用jfreechart绘制excel.pdf

    描述:使用 JFreeChart 库生成 Excel 图表,包括柱状图、饼状图、折线图等多种类型的图表。 标签:JFreeChart、Java、Excel、图表 部分内容: ### 需要的 Jar 包 在使用 JFreeChart 库之前,需要将 jfreechart-...

Global site tag (gtag.js) - Google Analytics