`
远去的渡口
  • 浏览: 472842 次
  • 性别: Icon_minigender_2
  • 来自: 上海转北京
社区版块
存档分类
最新评论

JfreeChart 3D柱状图 带基准线的

阅读更多
[/color]public static void drawInAndOutCalChart(String title,String bar1, String bar2,
IrisIoInterface io, Connection con, List intakeAndSportCal,
OnlineUser onlineUser, Log log, int drawBy) {
int size = intakeAndSportCal.size();
double[][] data = new double[2][size];

String[] rowKeys = { bar1, bar2 };
String[] columnKeys = new String[size];

String noDataMessage = "you have not any recoreds!";

// 将摄入卡路里与运动卡路里放入到data数组中去。
double bmr = getUserBMRByBlogId(con, log, io, onlineUser);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < size; j++) {
UserFoodRecordBean re = (UserFoodRecordBean) intakeAndSportCal
.get(j);
if (i == 0) {
data[i][j] = re.getCaloriesimple();
System.out.println("data[][] calsimple=" + data[i][j]);
} else {
if (drawBy == 1) {
bmr = bmr * 1;
} else if (drawBy == 2) {
bmr = bmr * 1;
}
data[i][j] = re.getSportTotalCalorie() + bmr;
}

System.out.println("drawsportCal= ^^^^^^^^^^^^^^^^^="
+ re.getSportTotalCalorie());

}
}

for (int x = 0; x < size; x++) {
UserFoodRecordBean re = (UserFoodRecordBean) intakeAndSportCal
.get(x);

columnKeys[x] = re.getUserfoodDate();
System.out.println("user_date=" + columnKeys[x]);
}

CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
rowKeys, columnKeys, data);

JFreeChart chart = ChartFactory.createBarChart3D(title, null,
null, dataset, PlotOrientation.VERTICAL, true, false, false);
chart.setBackgroundPaint(Color.WHITE);
CategoryPlot plot = chart.getCategoryPlot();

CategoryAxis domainAxis = plot.getDomainAxis();
// domainAxis.setVerticalCategoryLabels(false);
plot.setDomainAxis(domainAxis);
plot.setNoDataMessage(noDataMessage);

String unit = "cal";
String label = "BMR=" + bmr + unit;
ValueMarker valuemarker = new ValueMarker(bmr);
valuemarker.setLabelOffsetType(LengthAdjustmentType.EXPAND);
valuemarker.setPaint(Color.PINK);
valuemarker.setStroke(new BasicStroke(1.0F));
valuemarker.setLabel(label);
valuemarker.setLabelFont(new Font("SansSerif", 0, 11));
valuemarker.setLabelPaint(Color.blue);
valuemarker.setLabelAnchor(RectangleAnchor.TOP_LEFT);
valuemarker.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT);
valuemarker.setLabelOffset(new RectangleInsets(5, 5, 5, 5));
float[] f = { 2, 4, 2, 4 };
valuemarker.setStroke(new BasicStroke(2.0f, 1, 1, 0, f, 1.0f)); // setStroke 将基准线设置为虚线,float[]数组实现。
plot.addRangeMarker(valuemarker, Layer.BACKGROUND);

ValueAxis rangeAxis = plot.getRangeAxis();
// 设置最高的一个 Item 与图片顶端的距离
rangeAxis.setUpperMargin(0.15);
// 设置最低的一个 Item 与图片底端的距离
rangeAxis.setLowerMargin(0.15);
plot.setRangeAxis(rangeAxis);

BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
// 设置 Wall 的颜色
renderer.setWallPaint(Color.gray);
// 设置每种卡路里代表的柱的颜色
renderer.setSeriesPaint(1, Color.red);
renderer.setSeriesPaint(0, Color.GREEN);

// 设置每种卡路里所包含的平行柱的之间距离
renderer.setItemMargin(0.05);
// 显示每个柱的数值,并修改该数值的字体属性
renderer
.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer);

// 设置柱的透明度
plot.setForegroundAlpha(0.6f);
// 设置每种卡路里的显示位置
plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);

HttpServletRequest request = io.getRequest();
String filename = "";
String graphURL = "";
try {
filename = ServletUtilities.saveChartAsPNG(chart, 750, 172, null,
io.getSession());
graphURL = request.getContextPath() + "/displayChart?filename="
+ filename;
System.out.println(filename);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

io.setData("filename", filename, BeanShare.BEAN_SHARE_REQUEST);
io.setData("graphURL", graphURL, BeanShare.BEAN_SHARE_REQUEST);
io.setData("bmr", bmr, BeanShare.BEAN_SHARE_REQUEST);

}
[/size]
  • 大小: 12.7 KB
分享到:
评论

相关推荐

    jfreechart 堆栈柱状图跟折线图结合拼接

    jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707

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

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

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

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括折线图、柱状图、饼状图、散点图等,并且支持自定义样式和颜色,使得数据可视化变得更加直观和生动。在这个特定的场景中,我们将关注...

    jfreechart 绘制横向立体柱状图

    利用jfreechart绘制的横向立体柱状图,横坐标是数值,纵坐标是数据分类,需要提前引入jfreechart包文件到工程里,才不会报错

    JFreeChart动态加载柱状图

    JFreeChart创建柱状图,之前网上很多都是创建柱状图的,静态的。数据更新之后柱状图随之改变,代码实现详见附件代码。所需要的jar包是jfreechart-1.0.13.jar,gnujaxp.jar,jcommon-1.0.16.jar

    jfreechart实现柱状图排序

    根据提供的信息,我们可以总结出以下关于使用 JFreeChart 实现柱状图排序的相关知识点: ### 一、背景介绍 在日常的数据分析与展示工作中,柱状图是非常常见的一种图表类型,它能直观地显示不同类别之间的数值差异...

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

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

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

    JFreeChart是一个流行的Java库,用于生成各种类型的图表,包括折线图、饼图和柱状图,甚至堆栈柱状图。这个压缩包中的"CreateChartServiceImpl.java"文件很可能包含了一个实现这些功能的服务类。 首先,我们要理解...

    利用JFreeChart 实现柱状图,饼图,时序图,折线图等

    在Java编程环境中,JFreeChart库是一个非常强大的工具,它允许开发者轻松地创建各种图表,如柱状图、饼图、时序图和折线图等。这些图表在数据分析、报表展示以及各种可视化应用中非常常见。下面我们将详细介绍如何...

    JfreeChart柱状图饼图

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

    java里用JFreeChart画柱状图、折线图、雷达图

    在Java编程环境中,JFreeChart库是一个强大的工具,用于创建各种复杂的图表,包括柱状图、折线图和雷达图。这些图表对于数据可视化和数据分析非常有用,可以帮助开发者直观地展示大量信息。以下是对给定文件中每个...

    JFreeChart编写柱状图和饼状图及3D饼状图方法

    JFreeChart是一款强大的Java库,用于创建各种图表,包括柱状图、饼状图和3D饼状图等。在Java编程中,JFreeChart是一个非常实用的工具,它允许开发者轻松地在应用程序中集成数据可视化功能。下面将详细介绍如何使用...

    JFreeChart设置柱状图的宽度

    JFreeChart设置柱状图的宽度,当一个元素时不让显示那么宽。

    java+jfreechart+struts 生成柱状图

    java+jfreechart+struts 生成柱状图 java jfreechart 柱状图 java jfreechart 柱状图 谁需要完整项目可以去http://download.csdn.net/source/2665347

    jfreechart的使用-柱状图

    **标题:“jfreechart的使用-柱状图”** **描述**:这篇博客文章主要探讨了如何使用jFreeChart库创建柱状图。jFreeChart是Java编程语言中一个广泛使用的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、...

    jfreechart柱状图

    **JFreeChart 柱状图** JFreeChart 是一个流行的开源 Java 图形库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图等,广泛应用于数据分析、报告生成以及可视化应用中。这个压缩包提供的源代码示例,展示...

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

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

    JFreeChart 折线、柱状组合图

    public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 &lt;!--begin 维优特例 --&gt; ...

Global site tag (gtag.js) - Google Analytics