`

struts2整合JFreechart 饼图、折线图、柱形图

 
阅读更多

struts2整合JFreechart 饼图、折线图、柱形图

上效果图:




当然可以将数据导出图片格式存储。具体下的链接里的文件有保存成图片的操作。

因为是strust2整合JFreechart,所以strust2框架一定得搭建好。

1.导入三个包:http://download.csdn.net/detail/x46466/4328100

jcommon-1.0.16.jar

jfreechart-1.0.13.jar

struts2-jfreechart-plugin-2.0.11.jar

2.修改web.xml

 

<!-- Struts2的过滤器 -->

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

修改成:

 

<filter>

<filter-name>struts-prepare</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>

</filter>

<filter>

<filter-name>struts-execute</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts-prepare</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<filter-mapping>

<filter-name>struts-execute</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

3.写action

1)3D饼图

 

/**

 * @author zhengxinzao

 * 

 */

public class PieChart3DAction extends ActionSupport {

private JFreeChart chart;

public JFreeChart getChart() {

chart = ChartFactory.createPieChart3D("学生成绩分析", getDataset(), true,

false, false);

chart

.setTitle(new TextTitle("学生成绩分析", new Font("黑体", Font.ITALIC,

22)));

LegendTitle legend = chart.getLegend();

legend.setItemFont(new Font("宋体", Font.ITALIC, 14));

PiePlot3D plot = (PiePlot3D) chart.getPlot();

plot.setLabelFont(new Font("隶书", Font.ITALIC, 18));

// 设定背景透明度(0-1.0之间)

plot.setBackgroundAlpha(0.9f);

// 设定前景透明度(0-1.0之间)

plot.setForegroundAlpha(0.50f);

String unitStyle = "{0}={1}({2})";

// 设置图例显示样式

plot.setLabelGenerator(new StandardPieSectionLabelGenerator(unitStyle,

NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));

// 设置引用标签显示样式

plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(

unitStyle, NumberFormat.getNumberInstance(), new DecimalFormat(

"0.00%")));

return chart;

}

public void setChart(JFreeChart chart) {

this.chart = chart;

}

private DefaultPieDataset getDataset() {

DefaultPieDataset dataset = new DefaultPieDataset();

dataset.setValue("不及格", 2);

dataset.setValue("及格", 8);

dataset.setValue("中等", 15);

dataset.setValue("良好", 15);

dataset.setValue("优秀", 5);

dataset.setValue("优秀1", 5);

return dataset;

}

}

2)拆线图

 

/**

 * @author zhengxinzao

 * 

 */

public class LineChartAction extends ActionSupport {

private JFreeChart chart;

 

public JFreeChart getChart() {

 

chart = ChartFactory.createTimeSeriesChart("水果销量统计图", "水果", "销量",

getDataSet(), true, false, false);

 

// 重新设置图标标题,改变字体

chart

.setTitle(new TextTitle("水果销量统计图", new Font("黑体", Font.ITALIC,

22)));

// 取得统计图标的第一个图例

LegendTitle legend = chart.getLegend(0);

// 修改图例的字体

legend.setItemFont(new Font("宋体", Font.BOLD, 14));

 

XYPlot plot = (XYPlot) chart.getPlot();

// 取得横轴

ValueAxis categoryAxis = plot.getDomainAxis();

// 设置横轴显示标签的字体

categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));

categoryAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 18));

// 取得纵轴

NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();

// 设置纵轴显示标签的字体

numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));

return chart;

}

 

public void setChart(JFreeChart chart) {

this.chart = chart;

}

 

// 返回一个CategoryDataset实例

private static XYDataset getDataSet() {

TimeSeries apple = new TimeSeries("苹果", Month.class);

apple.add(new Month(10, 2007), 3900);

apple.add(new Month(11, 2007), 900);

apple.add(new Month(12, 2007), 2500);

apple.add(new Month(1, 2008), 3900);

apple.add(new Month(2, 2008), 2000);

apple.add(new Month(3, 2008), 3300);

 

TimeSeries orange = new TimeSeries("桔子", Month.class);

orange.add(new Month(10, 2007), 3300);

orange.add(new Month(11, 2007), 2680);

orange.add(new Month(12, 2007), 2000);

orange.add(new Month(1, 2008), 1900);

orange.add(new Month(2, 2008), 2000);

orange.add(new Month(3, 2008), 2300);

 

TimeSeriesCollection dataset = new TimeSeriesCollection();

dataset.addSeries(apple);

dataset.addSeries(orange);

return dataset;

}

}

3)柱形图

 

/**

 * @author zhengxinzao

 * 

 */

public class BarChart3DAction extends ActionSupport {

private JFreeChart chart;

 

public JFreeChart getChart() {

chart = ChartFactory.createBarChart3D("学生成绩分析", "成绩", "人数",

getDataset(), PlotOrientation.VERTICAL, true, false, false);

chart

.setTitle(new TextTitle("学生成绩分析", new Font("黑体", Font.ITALIC,

22)));

LegendTitle legend = chart.getLegend();

// 修改图例的字体

legend.setItemFont(new Font("宋体", Font.ITALIC, 14));

 

CategoryPlot plot = (CategoryPlot) chart.getPlot();

// 取得横轴

CategoryAxis categoryAxis = plot.getDomainAxis();

categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));

 

// 分类标签以45度角倾斜

categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);

categoryAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 22));

 

// 取得纵轴

 

NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();

numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));

return chart;

}

 

/**

* @return

*/

private CategoryDataset getDataset() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(2, "1班", "不及格");

dataset.addValue(4, "2班", "不及格");

dataset.addValue(5, "3班", "不及格");

dataset.addValue(8, "1班", "及格");

dataset.addValue(5, "2班", "及格");

dataset.addValue(10, "3班", "及格");

dataset.addValue(15, "1班", "中等");

dataset.addValue(10, "2班", "中等");

dataset.addValue(10, "3班", "中等");

dataset.addValue(15, "1班", "良好");

dataset.addValue(15, "2班", "良好");

dataset.addValue(15, "3班", "良好");

dataset.addValue(5, "1班", "优秀");

dataset.addValue(5, "2班", "优秀");

dataset.addValue(5, "3班", "优秀");

return dataset;

}

 

public void setChart(JFreeChart chart) {

this.chart = chart;

}

}

 

 

 

 

4.加入strust.xml:

 

<package name="jfreechar" namespace="/jfreechar" extends="jfreechart-default">

<action name="pieChart3DAction" class="com.zxz.ssh.JFreeChart.PieChart3DAction">

<result type="chart">

<param name="width">700</param>

<param name="height">400</param>

</result>

</action>

<action name="lineChartAction" class="com.zxz.ssh.JFreeChart.LineChartAction">

<result type="chart">

<param name="width">700</param>

<param name="height">400</param>

</result>

</action>

<action name="barChart3DAction" class="com.zxz.ssh.JFreeChart.BarChart3DAction">

<result type="chart">

<param name="width">700</param>

<param name="height">400</param>

</result>

</action>

</package>

 

5.jsp中使用:

 

<img alt="" src="jfreechar/pieChart3DAction" style="margin: auto;">

<br />

<img alt="" src="jfreechar/lineChartAction" style="margin: auto;">

<br />

<img alt="" src="jfreechar/barChart3DAction" style="margin: auto;">

<br />

分享到:
评论

相关推荐

    java利用JFreeChart实现各类数据统计图柱形图饼图折线图.pdf

    Java 中可以使用 JFreeChart 库来实现各种数据统计图,如柱形图、饼图、折线图等。下面将详细介绍如何使用 JFreeChart 库实现数据统计图。 首先,需要添加三个第三方包到 Java 项目中,分别是 jfreechart-1.0.13....

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

    《使用JFreeChart生成折线图、饼图、柱状图和堆栈柱状图》 JFreeChart是一款强大的开源Java图表库,它允许开发者在应用程序、报告或网页中生成各种高质量的图表,包括折线图、饼图、柱状图和堆栈柱状图等。这篇文档...

    jfreeChar 折线图+柱形图(混合图) +最新Jar包及例子

    JFreeChart 是一个开源的Java库,用于生成高质量的、多样的图表,包括折线图、柱形图、饼图、散点图等。在这个特定的案例中,我们关注的是如何利用JFreeChart来创建折线图和柱形图的混合图表,这种图表在数据可视化...

    使用java实现各种数据统计图(柱形图,饼图,折线图)

    JFreeChart是一个强大的Java库,它可以用来创建多种类型的图表,包括柱形图、饼图和折线图。本篇文章将详细介绍如何使用JFreeChart来实现这些统计图形。 首先,为了使用JFreeChart库,我们需要导入以下三个依赖库:...

    java实现各种数据统计图(柱形图,饼图,折线图).zip

    JFreeChart是一个强大的图表库,它提供了丰富的图表类型,包括柱形图、饼图和折线图,使得开发者能够方便地创建高质量的数据图形。下面将详细讨论如何使用JFreeChart来实现这些统计图表。 首先,柱形图(Bar Chart...

    java利用JFreeChart实现各种数据统计图(柱形图_饼图_折线图).pdf

    本文主要介绍了使用 Java 语言和 JFreeChart 库来实现各种数据统计图的方法,包括柱形图、饼图、折线图等。统计图是数据分析和可视化的重要工具,可以帮助用户更好地理解和分析数据。 1. 数据组织 在生成统计图...

    java实现各种数据统计图(柱形图,饼图,折线图)

    在Java编程语言中,生成各种数据统计图,如柱形图、饼图和折线图,通常会使用第三方库,例如jFreeChart。jFreeChart是一个功能强大的图表库,能够帮助开发者创建高质量的2D图表,广泛应用于数据分析、报告生成以及...

    JFreeChart图形控件

    2. **柱形图(Bar Chart)** 柱形图通过垂直或水平的条形长度表示数据量,常用于比较不同类别的数值。它可以是单系列或多系列,显示多个数据项之间的相对大小。在商业分析中,柱形图常用于展示销售数据、预算对比等...

    jfreeChart+ struts+数据库,柱形图开发,直接能用

    首先,**jfreeChart** 是一个强大的Java图表库,它提供了丰富的图表类型,包括柱形图、折线图、饼图等,可以用于生成静态或动态的图表。在本项目中,jfreeChart是生成柱形图的关键工具。开发者可以通过调用其API,...

    JFreeChart绘图柱形_饼形_折线图源码

    从给定的代码片段来看,我们正在探讨的是如何使用JFreeChart库在Java环境中创建不同类型的图表,包括饼图和折线图。JFreeChart是一个开源的Java图表库,提供了丰富的API来绘制各种统计图表,如条形图、饼图、折线图...

    report图状报表(柱状图,饼状图,折线图)

    Java中,JFreeChart同样支持创建折线图,并且支持多系列数据、自定义轴刻度以及添加数据标记等功能。 在实际开发中,Java程序员通常会结合数据库查询结果或者CSV、Excel等数据文件来生成这些图表。他们需要处理数据...

    安卓实现AChartEngine-饼图+柱形图

    ChartEngine支持的图表类型:折线图、区域图、散点图、时间图、柱状图、饼状图、气泡式图表、环形图、高低交替图等。 以上每种图表都可以包含多个序列, 可以将X轴以水平或垂直的形式显示,也支持很多自定义的特性。...

    JSP+JFreeChart 实现曲线图、柱形图

    接着,JFreeChart是一个开源的Java库,提供了一套完整的API来创建高质量的图表,包括折线图、柱状图、饼图、散点图、热力图等。它支持多种复杂的图表定制,例如颜色、标签、图例、数据系列等,为数据分析和报告提供...

    JFreeChart

    Jfreechart课程,柱形图,折线图,饼图等

    springboot_Jfreechart.zip

    在springboot的web项目上,利用jfreeChart+java+thymeleaf(thymeleaf也可以换成jstl)制作折线图,柱形图,3d柱形图,多组柱形图,圆饼图,如果要演示到web项目和页面上去的可以下载看看

    jfreechart-1.0.9-experimental.jar

    jfreechart-1.0.9-experimental 用于java后台绘制图形的jar包,如折线图 饼图 柱形图

    JFreechart图表设计教程与实例.doc

    2. **数据集合**:JFreeChart使用各种数据结构来存储图表的数据,例如,CategoryDataset用于柱形图和折线图,PieDataset用于饼图。这些数据集可以根据需要更新,使得图表能够动态展示变化的数据。 3. **绘图区对象*...

Global site tag (gtag.js) - Google Analytics