- 浏览: 217485 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wanxin533:
挺好,正要用
利用jfreechart实现温度计监控设备运行 -
jiutianzhifeng:
这个真的很有用!
Flex3 Style Explorer所见即所得美化flex应用 -
带个回家:
wosidanyang 写道跑起来是跑起来了,为什么没图片大哥 ...
利用jfreechart制作仪表盘 -
wosidanyang:
跑起来是跑起来了,为什么没图片
利用jfreechart制作仪表盘 -
带个回家:
要jar包的找我,或者自己下载:PS:本人只罗列自己全部的ja ...
利用jfreechart制作仪表盘
/**
**QQ:252574345
**MSN:lele_love_lomboz@hotmail.com
*/
下面的柱图实例包括了大多数的柱图类设置
文件名称:index.jsp
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.awt.Color,
org.jfree.chart.ChartFactory,
org.jfree.chart.JFreeChart,
org.jfree.chart.plot.PlotOrientation,
org.jfree.chart.servlet.ServletUtilities,
org.jfree.data.category.CategoryDataset,
org.jfree.data.general.*,
org.jfree.chart.plot.CategoryPlot,
org.jfree.chart.axis.CategoryAxis,
org.jfree.chart.axis.ValueAxis,
org.jfree.chart.renderer.category.BarRenderer3D,
org.jfree.chart.urls.StandardCategoryURLGenerator,
org.jfree.chart.*,
org.jfree.chart.entity.*,
org.jfree.chart.labels.*,
org.jfree.chart.axis.CategoryLabelPositions,
java.awt.Font,
java.awt.GradientPaint,
org.jfree.ui.TextAnchor,
org.jfree.chart.axis.NumberAxis,
org.jfree.chart.axis.NumberTickUnit
"%>
<%
java.io.PrintWriter pw=new java.io.PrintWriter(out);
double[][] data = new double[][] {{500}, {200}, {100}, {400}, {600}, {300}};
String[] rowKeys = {"苹果", "梨子", "葡萄", "桔子", "西瓜", "香蕉"};
String[] columnKeys = {""};
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
rowKeys,
columnKeys,
data);
JFreeChart chart = ChartFactory.createBarChart3D("水果销量图统计",
"水果", //横坐标名称
"销量", //纵坐标名称
dataset,//数据集合
PlotOrientation.VERTICAL,//图形位置,水平还是垂直
true,
false,
false);
chart.setBackgroundPaint(Color.WHITE);
//设定背景色为白色
CategoryPlot categoryPlot = chart.getCategoryPlot();
//获得 plot:3dBar为CategoryPlot
categoryPlot.setBackgroundPaint(Color.lightGray);
//设定图表数据显示部分背景色
categoryPlot.setDomainGridlinePaint(Color.white);
//横坐标网格线白色
categoryPlot.setDomainGridlinesVisible(true);
//设置网格线可见
categoryPlot.setRangeGridlinePaint(Color.white);
//纵坐标网格线白色
//获取横坐标
CategoryAxis domainAxis = categoryPlot.getDomainAxis();
//设置 横坐标 垂直显示
//domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(0.4));
//获取纵坐标
NumberAxis numberaxis = (NumberAxis)categoryPlot.getRangeAxis();
//将纵坐标间距设置为50
numberaxis.setTickUnit(new NumberTickUnit(50));
//设置横坐标的标题字体和大小,此处是“宋体13号”
domainAxis.setLabelFont(new Font("宋体",Font.PLAIN,13));
//设置距离图片左端距离,参数为图片的百分比
domainAxis.setLowerMargin(0.05);
//设置距离图片右端距离
domainAxis.setUpperMargin(0.05);
//设置横坐标的坐标值的字体
domainAxis.setTickLabelFont(new Font("宋体",Font.PLAIN,12));
//使横坐标设置生效
categoryPlot.setDomainAxis(domainAxis);
ValueAxis rangeAxis = categoryPlot.getRangeAxis();
//设置最高的一个柱与图片顶端的距离
rangeAxis.setUpperMargin(0.05);
//设置最低的一个柱与图片底端的距离
rangeAxis.setLowerMargin(0.05);
categoryPlot.setRangeAxis(rangeAxis);
//设置竖坐标标签的旋转角度
rangeAxis.setLabelAngle(0.05);
//重要的类,负责生成各种效果
BarRenderer3D renderer=(BarRenderer3D) categoryPlot.getRenderer();
//设置 Wall 的颜色
renderer.setWallPaint(Color.PINK);
//设置每个柱的颜色
GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.blue,
0.0F, 0.0F, new Color(0, 0, 64)); //设定特定颜色
GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green,
0.0F, 0.0F, new Color(0, 64, 0));
renderer.setSeriesPaint(0, gradientpaint);
renderer.setSeriesPaint(1, gradientpaint1);
//设置柱的 Outline 颜色
renderer.setSeriesOutlinePaint(0, Color.BLACK);
renderer.setSeriesOutlinePaint(1, Color.BLACK);
//设置每个category所包含的平行柱的之间距离
renderer.setItemMargin(0.1);
//显示每个柱的数值,并修改该数值的字体属性
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
//以下设置,将按照指定格式,制定内容显示每个柱的数值。可以显示柱名称,所占百分比
//renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}",new DecimalFormat("0.0%")));
//设置柱子上数值的字体
renderer.setItemLabelFont(new Font("宋体",Font.PLAIN,13));
renderer.setItemLabelsVisible(true);
//设置柱子上数据的颜色
renderer.setItemLabelPaint(Color.RED);
//设置bar的最小宽度,以保证能显示数值
renderer.setMinimumBarLength(0.02);
//最大宽度
//renderer.setMaximumBarWidth(0.07);
//设置柱子上比例数值的显示,如果按照默认方式显示,数值为方向正常显示
//设置柱子上显示的数据旋转90度,最后一个参数为旋转的角度值/3.14
ItemLabelPosition itemLabelPosition= new ItemLabelPosition(
ItemLabelAnchor.INSIDE12,TextAnchor.CENTER_RIGHT,
TextAnchor.CENTER_RIGHT,-1.57D);
//下面的设置是为了解决,当柱子的比例过小,而导致表示该柱子比例的数值无法显示的问题
//设置不能在柱子上正常显示的那些数值的显示方式,将这些数值显示在柱子外面
ItemLabelPosition itemLabelPositionFallback=new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12,TextAnchor.BASELINE_LEFT,
TextAnchor.HALF_ASCENT_LEFT,-1.57D);
//设置正常显示的柱子label的position
renderer.setPositiveItemLabelPosition(itemLabelPosition);
renderer.setNegativeItemLabelPosition(itemLabelPosition);
//设置不能正常显示的柱子label的position
renderer.setPositiveItemLabelPositionFallback(itemLabelPositionFallback);
renderer.setNegativeItemLabelPositionFallback(itemLabelPositionFallback);
categoryPlot.setRenderer(renderer);
//设置柱子的透明度
categoryPlot.setForegroundAlpha(0.8f);
//为柱图设置“数据挖陷”
//第一个参数是跳转的连接地址
renderer.setBaseItemURLGenerator(new StandardCategoryURLGenerator(
"detail.jsp", "fruit", ""));
//使设置生效
renderer.setBaseItemLabelsVisible(true);
//设置柱的透明度
categoryPlot.setForegroundAlpha(0.5f);
//设置地区、销量的显示位置
//plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
//生成图形的名称
//可以改变ServletUtilities源代码,设置图形统一前缀名称和默认存放路径
//注意:图形的大小往往都是通过配置文件设置的,不可能所有图形一个大小
String filename = ServletUtilities.saveChartAsPNG(chart, 800, 600, info, session);
//调用DisplayChart(配置在webxml中),生成图形
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
//将MAP信息,写入图形
ChartUtilities.writeImageMap(pw, filename, info, true);
pw.flush();
%>
<table width="100%">
<tr>
<td align="center">
<!-- 生成图形 -->
<img src="<%= graphURL %>" width=800 height=600 border=0 usemap="#<%= filename %>" alt="">
</td>
</tr>
</table>
评论
请问这个问题怎么解决?
发表评论
-
利用jfreechart制作仪表盘
2008-09-01 14:18 12383效果图如下: jfreechar ... -
完整Jfreechart饼图实例包含大部分设置
2008-06-26 16:25 7440/** **QQ:252574345 **MSN:lele_l ... -
利用jfreechart实现温度计监控设备运行
2008-06-26 15:01 2824/** **QQ:252574345 **MSN:lele ... -
如何设置jfreechart周报曲线图的时间轴显示格式
2008-06-05 13:41 15856/** **QQ:252574345 **MSN:lele_l ... -
如何将jfreechart曲线图纵坐标值限定在一定范围内
2008-06-05 13:35 7718/** **QQ:252574345 **MSN:lele ... -
在jfreechart曲线图上显示数据点
2008-06-05 13:27 5892/** **QQ:252574345 **MSN ... -
如何设置jfreechart时间序列图日期轴显示格式
2008-06-05 10:18 3997/** **QQ:252574345 **MSN:lele_l ... -
如何设置jfreechart时间序列图时间轴间距和格式
2008-06-05 10:12 8940/** **QQ:252574345 **MSN:lele_l ... -
jfreechart 时间序列图当后台提供一个数据点的时候为什么图形上不显示
2008-06-05 10:04 2382/** **QQ:252574345 **MSN:lele_l ... -
如何设置jfreechart时间序列图曲线颜色
2008-06-05 09:49 6514/** **QQ:252574345 **MSN:lele_l ... -
修改JFreeChart 图片的存放路径
2008-06-04 14:27 6572/** **QQ:252574345 **MSN:lele_l ... -
如何在对比型柱图上设置"数据下探"和文字说明
2008-06-04 14:09 1608/** **QQ:252574345 **MSN:lele_l ... -
为何柱图上设置了热点链接,链接无效
2008-06-04 13:37 1920/** **QQ:252574345 **MSN:lele_l ... -
在普通柱图上实现"数据下探"
2008-06-04 13:12 1922/** **QQ:252574345 **MSN:lele_ ... -
如何设置柱图曲线图纵坐标间距
2008-06-04 11:06 2325/** **QQ:252574345 **MSN:lele_l ... -
如何设置柱图的纵坐标数值格式(显示整数,小数,百分比等)
2008-06-04 11:01 8494/** **QQ:252574345 **MSN:l ... -
如何在jfreechart 柱图柱子上显示对应数值
2008-06-04 10:51 2678/** **QQ:252574345 **MS ... -
如何设置Stacked3DBar每个柱子最大宽度和柱间距
2008-06-04 10:42 2072/** **QQ:252574345 **MSN:lele ... -
如何在Stacked3DBar中设置各个柱子块颜色
2008-06-04 10:39 1292/** **QQ:252574345 **MSN:lele_ ... -
jfreechart 常用设置方法
2008-06-04 10:23 5279公共JFreeChart类: JFreeChart chart ...
相关推荐
在JFreeChart中,你可以使用`CategoryDataset`来存储数据,然后创建`JFreeChart`实例,最后使用`ChartFactory.createBarChart()`方法生成柱状图。你可以自定义每个类别的标签,设置柱子的颜色,甚至添加工具提示和...
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括饼图、柱状图和折线图。在Java应用中,JFreeChart是一个不可或缺的工具,尤其在数据分析、报表生成或可视化数据的场景下。下面我们将深入...
柱状图是数据可视化中常用的一种方式,它通过竖直或水平的柱子长度来表示数值大小。在JFreeChart中,可以使用`CategoryPlot`类来创建柱状图。我们需要准备数据集,通常是`DefaultCategoryDataset`对象,然后将数据集...
JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件或Web应用中创建出各种复杂的图表,包括线状图、饼状图和柱状图。这些图表类型广泛应用于数据分析、报告制作以及可视化展示等领域。下面我们将...
折线图是一种常用的数据可视化方式,常用于显示数据随时间变化的趋势。在JFreeChart中,我们可以设置折线的颜色、线型和宽度,以及标记点的形状和颜色。通过`XYPlot`类,我们可以配置X轴和Y轴的数据源,然后使用`...
甘特图是项目管理中常用的时间进度表示法,JFreeChart的`GanttRenderer`允许创建带有任务条和进度的图表。 8. **仪表盘(Dashboard)** JFreeChart也支持创建类似汽车仪表盘的图形组件,如速度表、刻度盘等,用于...
**JFreeChart库详解与常用图表制作实例** JFreeChart是一个功能强大的开源Java库,用于创建高质量的图表。它支持多种图表类型,如饼图、柱状图、折线图和散点图等,适用于各种数据可视化需求。本文将深入探讨...
你可以创建一个`CategoryDataset`对象,将数据组织成类别和值,然后使用`JFreeChart`的`createBarChart()`方法来生成柱状图。 饼图是另一种常用的数据表示形式,适合显示各部分占整体的比例。JFreeChart允许你创建...
柱状图是一种常用的数据表示方式,它通过长度不等的柱子来比较各个类别的数值大小。JFreeChart提供多种定制化的柱状图,包括简单柱状图、堆积柱状图、百分比堆积柱状图等。开发者可以通过设置柱子的颜色、宽度、标签...
柱状图是一种常用的数据可视化工具,用于比较不同类别的数值。JFreeChart支持垂直和水平柱状图,可以通过`CategoryPlot`类来创建。每个柱子代表一个类别,柱子的高度则表示对应的数值大小。通过调整柱子的颜色、宽度...
柱状图是一种常用的统计图表,用于比较不同类别的数据。JFreeChart 提供了 CategoryChart 和 BarChart 类来创建柱状图。开发者可以通过设置 CategoryDataset 来定义数据,然后使用 BarRenderer 渲染这些数据,形成...
JFreeChart提供了`TimeSeriesCollection`和`createXYLineChart()`方法来生成折线图。可以设置曲线样式、时间轴格式,以及添加数据点标记和图例等,以增强图表的表达力。 在实际使用中,JFreeChart不仅支持静态图表...
使用`chart.setPlot()`方法设置混合图表的主`Plot`。 3. **创建CategoryPlot或XYPlot**:对于柱状图和折线图,我们可以创建`CategoryPlot`或`XYPlot`对象,然后添加到主`Plot`中。`CategoryPlot`适用于柱状图和折线...
- **甘特图(Gantt Chart)**:项目管理中常用的图表,展示任务的进度和时间线。 - **雷达图(Radar Chart)**:多维数据比较,每个轴代表一个变量,所有变量在同一个图形上进行对比。 - **3D 图表**:为数据提供更...
### JFreeChart 柱图实现详解 #### 引言 在数据分析与展示领域,柱状图(Bar Chart)是一种非常常见的数据可视化工具,它能够直观地比较不同类别的数值大小,尤其适用于显示离散数据集。JFreeChart作为Java平台上...
饼图是数据展示中常用的一种图表,JFreeChart提供完善的饼图支持。饼图将数据以扇形块的形式展示,每个扇形块代表一个类别,其大小表示该类别的相对比例。在JFreeChart中,你可以通过`PieDataset`接口来创建数据集,...
对于**柱状图**,它是数据可视化的基本元素,常用来比较不同类别的数量。在JFreeChart中,你可以创建CategoryDataset,填充数据,然后使用CategoryPlot和JFreeChart类创建柱状图。每个柱子代表类别,其高度表示该...