以下例子是一个利用JFREECHART绘制重叠柱状图的例子,源码可以直接使用。
*****************************************************************
/**
* 重叠的柱状图
*/
import java.awt.*;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LayeredBarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.util.SortOrder;
@SuppressWarnings("serial")
public class LayeredBarChartDemo1 extends ApplicationFrame
{
public LayeredBarChartDemo1(String s)
{
super(s);
JPanel jpanel = createDemoPanel();
jpanel.setPreferredSize(new Dimension(500, 270));
setContentPane(jpanel);
}
/**
* 生成显示图形用的数据集
* @return
*/
private static CategoryDataset createDataset()
{
// 图例
String s1 = "One";
String s2 = "Two";
String s3 = "Thr";
// 横坐标分类
String t1 = "C1";
String t2 = "C2";
String t3 = "C3";
String t4 = "C4";
String t5 = "C5";
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
// addValue方法说明:参数1:柱状图显示的量
// 参数2:柱子(或图例)标注(一个点显示一个柱子时,只需要一个)
// 参数3:横坐标上显示的分类
defaultcategorydataset.addValue(1D, s1, t1);
defaultcategorydataset.addValue(3D, s1, t2);
defaultcategorydataset.addValue(2D, s1, t3);
defaultcategorydataset.addValue(5D, s1, t4);
defaultcategorydataset.addValue(8D, s1, t5);
defaultcategorydataset.addValue(5D, s2, t1);
defaultcategorydataset.addValue(9D, s2, t2);
defaultcategorydataset.addValue(6D, s2, t3);
defaultcategorydataset.addValue(1D, s2, t4);
defaultcategorydataset.addValue(5D, s2, t5);
defaultcategorydataset.addValue(8D, s3, t1);
defaultcategorydataset.addValue(1D, s3, t2);
defaultcategorydataset.addValue(5D, s3, t3);
defaultcategorydataset.addValue(2D, s3, t4);
defaultcategorydataset.addValue(6D, s3, t5);
return defaultcategorydataset;
}
/**
* 绘制图形,设置参数
* @param categorydataset
* @return
*/
private static JFreeChart createChart(CategoryDataset categorydataset)
{
// 生成图形--参数说明
// 参数1:标题
// 参数2:分类
// 参数3:值
// 参数4:数据集
// 参数5:柱子的显示方向
// 参数6:是否显示图例
// 参数7:暂不知道
// 参数8:是否显示URL
JFreeChart jfreechart = ChartFactory.createBarChart("BarImage", "CCC", "Value", categorydataset, PlotOrientation.VERTICAL, true, true, true);
// 设置背景色
jfreechart.setBackgroundPaint(Color.lightGray);
// 设置图形对象
CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
// 设置图形的背景色
categoryplot.setBackgroundPaint(Color.yellow);
// 设置图形上竖线的颜色
categoryplot.setDomainGridlinePaint(Color.black);
// 设置图形上竖线是否显示
categoryplot.setDomainGridlinesVisible(true);
// 设置图形上横线的颜色
categoryplot.setRangeGridlinePaint(Color.black);
// 获取横轴
CategoryAxis categoryAxis = categoryplot.getDomainAxis();
// 设置横坐标上的分类是否显示
categoryAxis.setTickLabelsVisible(true);
// 获取纵轴
NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
// 设置纵轴的刻度线
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
LayeredBarRenderer layeredbarrenderer = new LayeredBarRenderer();
layeredbarrenderer.setDrawBarOutline(false);
// 设置柱子的边框是否显示
categoryplot.setRenderer(layeredbarrenderer);
// 设置柱子的排序方式
categoryplot.setRowRenderingOrder(SortOrder.DESCENDING);
GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.black, 0.0F, 0.0F, new Color(0, 0, 64));
GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, Color.green, 0.0F, 0.0F, new Color(0, 64, 0));
GradientPaint gradientpaint3 = new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, new Color(64, 0, 0));
// 设置柱子的颜色
layeredbarrenderer.setSeriesPaint(0, gradientpaint1);
layeredbarrenderer.setSeriesPaint(1, gradientpaint2);
layeredbarrenderer.setSeriesPaint(2, gradientpaint3);
return jfreechart;
}
public static JPanel createDemoPanel()
{
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
}
public static void main(String args[])
{
LayeredBarChartDemo1 layeredbarchartdemo1 = new LayeredBarChartDemo1("LayeredBarChart");
layeredbarchartdemo1.pack();
RefineryUtilities.centerFrameOnScreen(layeredbarchartdemo1);
layeredbarchartdemo1.setVisible(true);
}
}
- 大小: 14.5 KB
分享到:
相关推荐
JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...
利用jfreechart绘制的横向立体柱状图,横坐标是数值,纵坐标是数据分类,需要提前引入jfreechart包文件到工程里,才不会报错
jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707
JFreeChart 是一个开源的Java库,用于生成高质量的2D图表,如折线图、饼图、柱状图和堆栈柱状图等。它广泛应用于数据分析、报告和应用程序中,提供丰富的自定义选项来满足各种视觉需求。在本项目中,你将找到能够...
JFreeChart创建柱状图,之前网上很多都是创建柱状图的,静态的。数据更新之后柱状图随之改变,代码实现详见附件代码。所需要的jar包是jfreechart-1.0.13.jar,gnujaxp.jar,jcommon-1.0.16.jar
利用jfreechart绘制的立体柱状图,可以实现正负纵坐标显示,需要提前下载jfreechart.jar文件,否则我的类会报错,也即是要配置运行环境
public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 <!--begin 维优特例 --> ...
本文主要介绍如何使用jfreechart绘制风速风向玫瑰图。 首先,了解jfreechart的基本结构。jfreechart的核心是ChartFactory,它提供了许多种类的图表的工厂方法。例如,createPolarChart方法可以创建一个极坐标图。...
然后,使用`JFreeChart.createBarChart()`方法生成柱状图。 2. **饼图(Pie Chart)** 饼图用于显示整体中各个部分的比例。JFreeChart提供了`PieDataset`接口,用来存储数据,然后通过`JFreeChart.createPieChart...
**标题:“jfreechart的使用-柱状图”** **描述**:这篇博客文章主要探讨了如何使用jFreeChart库创建柱状图。jFreeChart是Java编程语言中一个广泛使用的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、...
在Java编程环境中,JFreeChart库是一个强大的工具,用于创建各种复杂的图表,包括柱状图、折线图和雷达图。这些图表对于数据可视化和数据分析非常有用,可以帮助开发者直观地展示大量信息。以下是对给定文件中每个...
根据提供的信息,我们可以总结出以下关于使用 JFreeChart 实现柱状图排序的相关知识点: ### 一、背景介绍 在日常的数据分析与展示工作中,柱状图是非常常见的一种图表类型,它能直观地显示不同类别之间的数值差异...
java+jfreechart+struts 生成柱状图 java jfreechart 柱状图 java jfreechart 柱状图 谁需要完整项目可以去http://download.csdn.net/source/2665347
在Java编程中,JFreeChart库是一个强大的图表绘制工具,它能够帮助开发者创建出多种类型的图表,包括柱状图、饼图等,广泛应用于数据分析和可视化展示。这篇博文中,我们将深入探讨如何使用JFreeChart来创建柱状图和...
你可以创建一个`CategoryDataset`对象,将数据组织成类别和值,然后使用`JFreeChart`的`createBarChart()`方法来生成柱状图。 饼图是另一种常用的数据表示形式,适合显示各部分占整体的比例。JFreeChart允许你创建...
JFreeChart是一款强大的Java图表库,它允许开发者在Java应用程序或网页中生成各种高质量的图形,包括饼图、折线图、柱状图等。在本示例中,我们将深入探讨如何利用JFreeChart库来创建这些常见的图表类型。 ### 饼图...
JFreeChart是一款强大的Java图形库,它允许开发者创建多种类型的图表,包括折线图、柱状图、饼图、散点图等。在本主题中,我们将深入探讨如何使用JFreeChart来绘制平面和3D的折线图。 首先,让我们了解折线图的基本...